Class: Axlsx::Chart
- Inherits:
-
Object
- Object
- Axlsx::Chart
- Includes:
- OptionsParser
- Defined in:
- lib/axlsx/drawing/chart.rb
Overview
Worksheet#add_chart is the recommended way to create charts for your worksheets.
A Chart is the superclass for specific charts
Direct Known Subclasses
Instance Attribute Summary collapse
-
#graphic_frame ⇒ GraphicFrame
readonly
A reference to the graphic frame that owns this chart.
-
#series ⇒ SimpleTypedList
readonly
A collection of series objects that are applied to the chart.
-
#series_type ⇒ Series
readonly
The type of series to use for this chart.
-
#show_legend ⇒ Boolean
Show the legend in the chart.
-
#style ⇒ Integer
The style for the chart.
-
#title ⇒ Title
The title object for the chart.
-
#vary_colors ⇒ Boolean
Indicates that colors should be varied by datum.
-
#view_3D ⇒ Object
(also: #view3D)
The 3D view properties for the chart.
Instance Method Summary collapse
-
#add_series(options = {}) ⇒ Series
Adds a new series to the chart's series collection.
-
#d_lbls ⇒ Object
TODO data labels!.
-
#end_at(x = 10, y = 10) ⇒ Marker
This is a short cut method to set the end anchor position If you need finer granularity in positioning use graphic_frame.anchor.to.colOff / rowOff.
-
#from ⇒ Object
backwards compatibility to allow chart.to and chart.from access to anchor markers.
-
#index ⇒ Integer
The index of this chart in the workbooks charts collection.
-
#initialize(frame, options = {}) {|_self| ... } ⇒ Chart
constructor
Creates a new chart object.
-
#pn ⇒ String
The part name for this chart.
-
#relationship ⇒ Axlsx::Relationship
returns a relationship object for the chart.
-
#start_at(x = 0, y = 0) ⇒ Marker
This is a short cut method to set the anchor start marker position If you need finer granularity in positioning use.
-
#to ⇒ Object
backwards compatibility to allow chart.to and chart.from access to anchor markers.
-
#to_xml_string(str = '') {|str| ... } ⇒ String
Serializes the object.
Methods included from OptionsParser
Constructor Details
#initialize(frame, options = {}) {|_self| ... } ⇒ Chart
Creates a new chart object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/axlsx/drawing/chart.rb', line 16 def initialize(frame, ={}) @style = 18 @view_3D = nil @graphic_frame=frame @graphic_frame.anchor.drawing.worksheet.workbook.charts << self @series = SimpleTypedList.new Series @show_legend = true @series_type = Series @title = Title.new start_at(*[:start_at]) if [:start_at] end_at(*[:end_at]) if [:end_at] yield self if block_given? end |
Instance Attribute Details
#graphic_frame ⇒ GraphicFrame (readonly)
A reference to the graphic frame that owns this chart
37 38 39 |
# File 'lib/axlsx/drawing/chart.rb', line 37 def graphic_frame @graphic_frame end |
#series ⇒ SimpleTypedList (readonly)
A collection of series objects that are applied to the chart
41 42 43 |
# File 'lib/axlsx/drawing/chart.rb', line 41 def series @series end |
#series_type ⇒ Series (readonly)
The type of series to use for this chart.
45 46 47 |
# File 'lib/axlsx/drawing/chart.rb', line 45 def series_type @series_type end |
#show_legend ⇒ Boolean
Show the legend in the chart
71 72 73 |
# File 'lib/axlsx/drawing/chart.rb', line 71 def show_legend @show_legend end |
#style ⇒ Integer
The style for the chart. see ECMA Part 1 §21.2.2.196
67 68 69 |
# File 'lib/axlsx/drawing/chart.rb', line 67 def style @style end |
#title ⇒ Title
The title object for the chart.
62 63 64 |
# File 'lib/axlsx/drawing/chart.rb', line 62 def title @title end |
#vary_colors ⇒ Boolean
Indicates that colors should be varied by datum
54 55 56 |
# File 'lib/axlsx/drawing/chart.rb', line 54 def vary_colors @vary_colors end |
#view_3D ⇒ Object Also known as: view3D
The 3D view properties for the chart
32 33 34 |
# File 'lib/axlsx/drawing/chart.rb', line 32 def view_3D @view_3D end |
Instance Method Details
#add_series(options = {}) ⇒ Series
Adds a new series to the chart's series collection.
128 129 130 131 |
# File 'lib/axlsx/drawing/chart.rb', line 128 def add_series(={}) @series_type.new(self, ) @series.last end |
#d_lbls ⇒ Object
TODO data labels!
48 49 50 |
# File 'lib/axlsx/drawing/chart.rb', line 48 def d_lbls @d_lbls ||= DLbls.new(self.class) end |
#end_at(x = 10, y = 10) ⇒ Marker
This is a short cut method to set the end anchor position If you need finer granularity in positioning use graphic_frame.anchor.to.colOff / rowOff
206 207 208 |
# File 'lib/axlsx/drawing/chart.rb', line 206 def end_at(x=10, y=10) @graphic_frame.anchor.end_at(x, y) end |
#from ⇒ Object
This will be disconinued in version 2.0.0. please use the start_at method
backwards compatibility to allow chart.to and chart.from access to anchor markers
121 122 123 |
# File 'lib/axlsx/drawing/chart.rb', line 121 def from @graphic_frame.anchor.from end |
#index ⇒ Integer
The index of this chart in the workbooks charts collection
81 82 83 |
# File 'lib/axlsx/drawing/chart.rb', line 81 def index @graphic_frame.anchor.drawing.worksheet.workbook.charts.index(self) end |
#pn ⇒ String
The part name for this chart
87 88 89 |
# File 'lib/axlsx/drawing/chart.rb', line 87 def pn "#{CHART_PN % (index+1)}" end |
#relationship ⇒ Axlsx::Relationship
returns a relationship object for the chart
75 76 77 |
# File 'lib/axlsx/drawing/chart.rb', line 75 def relationship Relationship.new(CHART_R, "../#{pn}") end |
#start_at(x = 0, y = 0) ⇒ Marker
This is a short cut method to set the anchor start marker position If you need finer granularity in positioning use
This helper method acceps a fairly wide range of inputs exampled below
reference or cell to use in setting the start marker position.
195 196 197 |
# File 'lib/axlsx/drawing/chart.rb', line 195 def start_at(x=0, y=0) @graphic_frame.anchor.start_at(x, y) end |
#to ⇒ Object
This will be disconinued in version 2.0.0. Please use the end_at method
backwards compatibility to allow chart.to and chart.from access to anchor markers
115 116 117 |
# File 'lib/axlsx/drawing/chart.rb', line 115 def to @graphic_frame.anchor.to end |
#to_xml_string(str = '') {|str| ... } ⇒ String
Serializes the object
136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 |
# File 'lib/axlsx/drawing/chart.rb', line 136 def to_xml_string(str = '') str << '<?xml version="1.0" encoding="UTF-8"?>' str << '<c:chartSpace xmlns:c="' << XML_NS_C << '" xmlns:a="' << XML_NS_A << '" xmlns:r="' << XML_NS_R << '">' str << '<c:date1904 val="' << Axlsx::Workbook.date1904.to_s << '"/>' str << '<c:style val="' << style.to_s << '"/>' str << '<c:chart>' @title.to_xml_string str str << '<c:autoTitleDeleted val="' << (@title == nil).to_s << '"/>' @view_3D.to_xml_string(str) if @view_3D str << '<c:floor><c:thickness val="0"/></c:floor>' str << '<c:sideWall><c:thickness val="0"/></c:sideWall>' str << '<c:backWall><c:thickness val="0"/></c:backWall>' str << '<c:plotArea>' str << '<c:layout/>' yield str if block_given? str << '</c:plotArea>' if @show_legend str << '<c:legend>' str << '<c:legendPos val="r"/>' str << '<c:layout/>' str << '<c:overlay val="0"/>' str << '</c:legend>' end str << '<c:plotVisOnly val="1"/>' str << '<c:dispBlanksAs val="zero"/>' str << '<c:showDLblsOverMax val="1"/>' str << '</c:chart>' str << '<c:printSettings>' str << '<c:headerFooter/>' str << '<c:pageMargins b="1.0" l="0.75" r="0.75" t="1.0" header="0.5" footer="0.5"/>' str << '<c:pageSetup/>' str << '</c:printSettings>' str << '</c:chartSpace>' end |