summaryrefslogtreecommitdiffhomepage
path: root/lib/axlsx/drawing/bubble_chart.rb
diff options
context:
space:
mode:
authorJean-Philippe Moal <[email protected]>2013-10-09 16:38:35 +0200
committerJean-Philippe Moal <[email protected]>2013-10-09 16:38:35 +0200
commit3171fa568618e9d75ead1994ed6e3be90b693a47 (patch)
tree2d7d5655f60386a70571eaa287f93045ae9c4317 /lib/axlsx/drawing/bubble_chart.rb
parent3bf46a00d717d5e991166360bf4a2ece41cc3fbc (diff)
downloadcaxlsx-3171fa568618e9d75ead1994ed6e3be90b693a47.tar.gz
caxlsx-3171fa568618e9d75ead1994ed6e3be90b693a47.zip
Add support for bubble charts
Diffstat (limited to 'lib/axlsx/drawing/bubble_chart.rb')
-rw-r--r--lib/axlsx/drawing/bubble_chart.rb59
1 files changed, 59 insertions, 0 deletions
diff --git a/lib/axlsx/drawing/bubble_chart.rb b/lib/axlsx/drawing/bubble_chart.rb
new file mode 100644
index 00000000..2f2c4595
--- /dev/null
+++ b/lib/axlsx/drawing/bubble_chart.rb
@@ -0,0 +1,59 @@
+# encoding: UTF-8
+module Axlsx
+
+ # The BubbleChart allows you to insert a bubble chart into your worksheet
+ # @see Worksheet#add_chart
+ # @see Chart#add_series
+ # @see README for an example
+ class BubbleChart < Chart
+
+ include Axlsx::OptionsParser
+
+ # the x value axis
+ # @return [ValAxis]
+ def x_val_axis
+ axes[:x_val_axis]
+ end
+ alias :xValAxis :x_val_axis
+
+ # the y value axis
+ # @return [ValAxis]
+ def y_val_axis
+ axes[:y_val_axis]
+ end
+ alias :yValAxis :y_val_axis
+
+ # Creates a new bubble chart
+ def initialize(frame, options={})
+ @vary_colors = 0
+
+ super(frame, options)
+ @series_type = BubbleSeries
+ @d_lbls = nil
+ parse_options options
+ end
+
+ # Serializes the object
+ # @param [String] str
+ # @return [String]
+ def to_xml_string(str = '')
+ super(str) do |str_inner|
+ str_inner << '<c:bubbleChart>'
+ 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
+ axes.to_xml_string(str_inner, :ids => true)
+ str_inner << '</c:bubbleChart>'
+ axes.to_xml_string(str_inner)
+ end
+ str
+ end
+
+ # The axes for the bubble chart. BubbleChart has an x_val_axis and
+ # a y_val_axis
+ # @return [Axes]
+ def axes
+ @axes ||= Axes.new(:x_val_axis => ValAxis, :y_val_axis => ValAxis)
+ end
+ end
+end