Class: Axlsx::LineChart

Inherits:
Chart
  • Object
show all
Defined in:
lib/axlsx/drawing/line_chart.rb

Overview

The LineChart is a two dimentional line chart (who would have guessed?) that you can add to your worksheet.

Examples:

Creating a chart

# This example creates a line in a single sheet.
require "rubygems" # if that is your preferred way to manage gems!
require "axlsx"

p = Axlsx::Package.new
ws = p.workbook.add_worksheet
ws.add_row ["This is a chart with no data in the sheet"]

chart = ws.add_chart(Axlsx::LineChart, :start_at=> [0,1], :end_at=>[0,6], :title=>"Most Popular Pets")
chart.add_series :data => [1, 9, 10], :labels => ["Slimy Reptiles", "Fuzzy Bunnies", "Rottweiler"]

See Also:

Direct Known Subclasses

Line3DChart

Instance Attribute Summary collapse

Attributes inherited from Chart

#display_blanks_as, #graphic_frame, #series, #series_type, #show_legend, #style, #title, #vary_colors, #view_3D

Instance Method Summary collapse

Methods inherited from Chart

#add_series, #d_lbls, #end_at, #from, #index, #pn, #relationship, #start_at, #to

Methods included from OptionsParser

#parse_options

Constructor Details

#initialize(frame, options = {}) ⇒ LineChart

Creates a new line chart object

Parameters:

  • frame (GraphicFrame)

    The workbook that owns this chart.

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • title (Cell, String)
  • show_legend (Boolean)
  • grouping (Symbol)

See Also:



48
49
50
51
52
53
54
# File 'lib/axlsx/drawing/line_chart.rb', line 48

def initialize(frame, options={})
  @vary_colors = false
  @grouping = :standard
  super(frame, options)
  @series_type = LineSeries
  @d_lbls = nil
end

Instance Attribute Details

#groupingSymbol

Returns:

  • (Symbol)


40
41
42
# File 'lib/axlsx/drawing/line_chart.rb', line 40

def grouping
  @grouping
end

Instance Method Details

#axesAxes

The axes for this chart. LineCharts have a category and value axis.

Returns:



95
96
97
# File 'lib/axlsx/drawing/line_chart.rb', line 95

def axes
  @axes ||= Axes.new(:cat_axis => CatAxis, :val_axis => ValAxis)
end

#cat_axisCatAxis Also known as: catAxis

the category axis

Returns:



26
27
28
# File 'lib/axlsx/drawing/line_chart.rb', line 26

def cat_axis
  axes[:cat_axis]
end

#node_nameString

The node name to use in serialization. As LineChart is used as the base class for Liine3DChart we need to be sure to serialize the chart based on the actual class type and not a fixed node name.

Returns:

  • (String)


66
67
68
69
70
71
72
73
# File 'lib/axlsx/drawing/line_chart.rb', line 66

def node_name
  path = self.class.to_s
  if i = path.rindex('::')
    path = path[(i+2)..-1]
  end
  path[0] = path[0].chr.downcase
  path
end

#to_xml_string(str = '') ⇒ String

Serializes the object

Parameters:

  • str (String) (defaults to: '')

Returns:

  • (String)


78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/axlsx/drawing/line_chart.rb', line 78

def to_xml_string(str = '')
  super(str) do |str_inner|
    str_inner << "<c:" << node_name << ">"
    str_inner << '<c:grouping val="' << grouping.to_s << '"/>'
    str_inner << '<c:varyColors val="' << vary_colors.to_s << '"/>'
    @series.each { |ser| ser.to_xml_string(str_inner) }
    @d_lbls.to_xml_string(str_inner) if @d_lbls
    yield str_inner if block_given?
    axes.to_xml_string(str_inner, :ids => true)
    str_inner << "</c:" << node_name << ">"
    axes.to_xml_string(str_inner)
  end
end

#val_axisValAxis Also known as: valAxis

the category axis

Returns:



33
34
35
# File 'lib/axlsx/drawing/line_chart.rb', line 33

def val_axis
  axes[:val_axis]
end