lib/axlsx/drawing/bar_chart.rb in caxlsx-3.1.0 vs lib/axlsx/drawing/bar_chart.rb in caxlsx-3.1.1
- old
+ new
@@ -29,16 +29,11 @@
@bar_dir ||= :bar
end
alias :barDir :bar_dir
# space between bar or column clusters, as a percentage of the bar or column width.
- # @return [String]
- attr_reader :gap_depth
- alias :gapDepth :gap_depth
-
- # space between bar or column clusters, as a percentage of the bar or column width.
- # @return [String]
+ # @return [Integer]
def gap_width
@gap_width ||= 150
end
alias :gapWidth :gap_width
@@ -47,33 +42,35 @@
# @return [Symbol]
def grouping
@grouping ||= :clustered
end
+ # Overlap between series
+ # @return [Integer]
+ def overlap
+ @overlap ||= 0
+ end
+
# The shape of the bars or columns
# must be one of [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax]
# @return [Symbol]
def shape
@shape ||= :box
end
- # validation regex for gap amount percent
- GAP_AMOUNT_PERCENT = /0*(([0-9])|([1-9][0-9])|([1-4][0-9][0-9])|500)%/
-
# Creates a new bar chart object
# @param [GraphicFrame] frame The workbook that owns this chart.
# @option options [Cell, String] title
# @option options [Boolean] show_legend
# @option options [Symbol] bar_dir
# @option options [Symbol] grouping
# @option options [String] gap_width
- # @option options [String] gap_depth
# @option options [Symbol] shape
# @see Chart
def initialize(frame, options={})
@vary_colors = true
- @gap_width, @gap_depth, @shape = nil, nil, nil
+ @gap_width, @overlap, @shape = nil, nil, nil
super(frame, options)
@series_type = BarSeries
@d_lbls = nil
end
@@ -92,21 +89,19 @@
@grouping = v
end
# space between bar or column clusters, as a percentage of the bar or column width.
def gap_width=(v)
- RegexValidator.validate "BarChart.gap_width", GAP_AMOUNT_PERCENT, v
+ RangeValidator.validate "BarChart.gap_width", 0, 500, v
@gap_width=(v)
end
alias :gapWidth= :gap_width=
- # space between bar or column clusters, as a percentage of the bar or column width.
- def gap_depth=(v)
- RegexValidator.validate "BarChart.gap_didth", GAP_AMOUNT_PERCENT, v
- @gap_depth=(v)
+ def overlap=(v)
+ RangeValidator.validate "BarChart.overlap", -100, 100, v
+ @overlap=(v)
end
- alias :gapDepth= :gap_depth=
# The shape of the bars or columns
# must be one of [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax]
def shape=(v)
RestrictionValidator.validate "BarChart.shape", [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax], v
@@ -122,11 +117,11 @@
str << ('<c:barDir val="' << bar_dir.to_s << '"/>')
str << ('<c:grouping val="' << grouping.to_s << '"/>')
str << ('<c:varyColors val="' << vary_colors.to_s << '"/>')
@series.each { |ser| ser.to_xml_string(str) }
@d_lbls.to_xml_string(str) if @d_lbls
+ str << ('<c:overlap val="' << @overlap.to_s << '"/>') unless @overlap.nil?
str << ('<c:gapWidth val="' << @gap_width.to_s << '"/>') unless @gap_width.nil?
- str << ('<c:gapDepth val="' << @gap_depth.to_s << '"/>') unless @gap_depth.nil?
str << ('<c:shape val="' << @shape.to_s << '"/>') unless @shape.nil?
axes.to_xml_string(str, :ids => true)
str << '</c:barChart>'
axes.to_xml_string(str)
end