lib/axlsx/drawing/bar_3D_chart.rb in axlsx-1.0.6 vs lib/axlsx/drawing/bar_3D_chart.rb in axlsx-1.0.7

- old
+ new

@@ -1,45 +1,19 @@ module Axlsx # The Bar3DChart is a three dimentional barchart (who would have guessed?) that you can add to your worksheet. - # @example Creating a chart - # # This example creates two charts in a single sheet. - # # The first uses data directly fed to the sheet, while the second references cells withing the worksheet for data. - # - # 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 :values => ["This is a chart with no data in the sheet"] - # - # chart = ws.add_chart(Axlsx::Bar3DChart, :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"] - # - # ws.add_row :values => ["This chart uses the data below"] - # title_row = ws.add_row :values => ["Least Popular Pets"] - # label_row = ws.add_row :values => ["", "Dry Skinned Reptiles", "Bald Cats", "Violent Parrots"] - # data_row = ws.add_row :values => ["Votes", 6, 4, 1] - # - # chart = ws.add_chart(Axlsx::Pie3DChart, :start_at => [0,11], :end_at =>[0,16], :title => title_row.cells.last) - # chart.add_series :data => data_row.cells[(1..-1)], :labels => label_row.cells - # - # f = File.open('example_pie_3d_chart.xlsx', 'w') - # p.serialize(f) - # # @see Worksheet#add_chart - # @see Worksheet#add_row # @see Chart#add_series - # @see Series # @see Package#serialize + # @see README for an example class Bar3DChart < Chart # the category axis # @return [CatAxis] attr_reader :catAxis - # the category axis + # the valueaxis # @return [ValAxis] attr_reader :valAxis # The direction of the bars in the chart # must be one of [:bar, :col] @@ -58,11 +32,11 @@ # must be one of [:percentStacked, :clustered, :standard, :stacked] # @return [Symbol] attr_accessor :grouping # The shabe of the bars or columns - # must be one of [:percentStacked, :clustered, :standard, :stacked] + # must be one of [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax] # @return [Symbol] attr_accessor :shape # validation regex for gap amount percent GAP_AMOUNT_PERCENT = /0*(([0-9])|([1-9][0-9])|([1-4][0-9][0-9])|500)%/ @@ -74,19 +48,27 @@ # @option options [Symbol] barDir # @option options [Symbol] grouping # @option options [String] gapWidth # @option options [String] gapDepth # @option options [Symbol] shape + # @option options [Integer] rotX + # @option options [String] hPercent + # @option options [Integer] rotY + # @option options [String] depthPercent + # @option options [Boolean] rAngAx + # @option options [Integer] perspective + # @see Chart + # @see View3D def initialize(frame, options={}) @barDir = :bar @grouping = :clustered @catAxId = rand(8 ** 8) @valAxId = rand(8 ** 8) @catAxis = CatAxis.new(@catAxId, @valAxId) @valAxis = ValAxis.new(@valAxId, @catAxId) - @view3D = View3D.new(:rAngAx=>1) super(frame, options) @series_type = BarSeries + @view3D = View3D.new({:rAngAx=>1}.merge(options)) end def barDir=(v) RestrictionValidator.validate "Bar3DChart.barDir", [:bar, :col], v @barDir = v