Class: Axlsx::ScatterSeries

Inherits:
Series
  • Object
show all
Defined in:
lib/axlsx/drawing/scatter_series.rb

Overview

Note:

The recommended way to manage series is to use Chart#add_series

A ScatterSeries defines the x and y position of data in the chart

See Also:

Instance Attribute Summary collapse

Attributes inherited from Series

#chart, #title

Instance Method Summary collapse

Methods inherited from Series

#index, #order, #order=

Methods included from OptionsParser

#parse_options

Constructor Details

#initialize(chart, options = {}) ⇒ ScatterSeries

Creates a new ScatterSeries


32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/axlsx/drawing/scatter_series.rb', line 32

def initialize(chart, options={})
  @xData, @yData = nil
  if options[:smooth].nil?
    # If caller hasn't specified smoothing or not, turn smoothing on or off based on scatter style
    @smooth = [:smooth, :smoothMarker].include?(chart.scatter_style)
  else
    # Set smoothing according to the option provided
    Axlsx::validate_boolean(options[:smooth])
    @smooth = options[:smooth]
  end
  @ln_width = options[:ln_width] unless options[:ln_width].nil?
  super(chart, options)
  @xData = AxDataSource.new(:tag_name => :xVal, :data => options[:xData]) unless options[:xData].nil?
  @yData = NumDataSource.new({:tag_name => :yVal, :data => options[:yData]}) unless options[:yData].nil?
end

Instance Attribute Details

#colorString

The fill color for this series. Red, green, and blue is expressed as sequence of hex digits, RRGGBB. A perceptual gamma of 2.2 is used.

Returns:

  • (String)

22
23
24
# File 'lib/axlsx/drawing/scatter_series.rb', line 22

def color
  @color
end

#ln_widthString

Returns:

  • (String)

25
26
27
# File 'lib/axlsx/drawing/scatter_series.rb', line 25

def ln_width
  @ln_width
end

#smoothBoolean

Line smoothing between data points

Returns:

  • (Boolean)

29
30
31
# File 'lib/axlsx/drawing/scatter_series.rb', line 29

def smooth
  @smooth
end

#xDataNamedAxisData (readonly)

The x data for this series.

Returns:

  • (NamedAxisData)

13
14
15
# File 'lib/axlsx/drawing/scatter_series.rb', line 13

def xData
  @xData
end

#yDataNamedAxisData (readonly)

The y data for this series.

Returns:

  • (NamedAxisData)

17
18
19
# File 'lib/axlsx/drawing/scatter_series.rb', line 17

def yData
  @yData
end

Instance Method Details

#to_xml_string(str = '') ⇒ String

Serializes the object

Parameters:

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

Returns:

  • (String)

67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/axlsx/drawing/scatter_series.rb', line 67

def to_xml_string(str = '')
  super(str) do
    # needs to override the super color here to push in ln/and something else!
    if color
      str << '<c:spPr><a:solidFill>'
      str << ('<a:srgbClr val="' << color << '"/>')
      str << '</a:solidFill>'
      str << '<a:ln><a:solidFill>'
      str << ('<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>')
      str << '</c:spPr>'
      str << '<c:marker>'
      str << '<c:spPr><a:solidFill>'
      str << ('<a:srgbClr val="' << color << '"/>')
      str << '</a:solidFill>'
      str << '<a:ln><a:solidFill>'
      str << ('<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>')
      str << '</c:spPr>'
      str << '</c:marker>'
    end
    if ln_width
      str << '<c:spPr>'
      str << '<a:ln w="' << ln_width.to_s << '"/>'
      str << '</c:spPr>'
    end
    @xData.to_xml_string(str) unless @xData.nil?
    @yData.to_xml_string(str) unless @yData.nil?
    str << ('<c:smooth val="' << ((smooth) ? '1' : '0') << '"/>')
  end
  str
end