lib/write_xlsx/chart.rb in write_xlsx-0.81.0 vs lib/write_xlsx/chart.rb in write_xlsx-0.81.1

- old
+ new

@@ -239,13 +239,31 @@ raise "Must specify ':categories' in add_series for this chart type" end @series << Series.new(self, params) + # Set the secondary axis properties. + x2_axis = params[:x2_axis] + y2_axis = params[:y2_axis] + # Set the gap and overlap for Bar/Column charts. - @series_gap = params[:gap] if params[:gap] - @series_overlap = params[:overlap] if params[:overlap] + if params[:gap] + if ptrue?(y2_axis) + @series_gap_2 = params[:gap] + else + @series_gap_1 = params[:gap] + end + end + + # Set the overlap for Bar/Column charts. + if params[:overlap] + if ptrue?(y2_axis) + @series_overlap_2 = params[:overlap] + else + @series_overlap_1 = params[:overlap] + end + end end # # Set the properties of the x-axis. # @@ -426,11 +444,11 @@ subtype = @subtype subtype = 'percentStacked' if subtype == 'percent_stacked' # Set a default overlap for stacked charts. if @subtype =~ /stacked/ - @series_overlap = 100 unless @series_overlap + @series_overlap_1 = 100 unless @series_overlap_1 end @writer.tag_elements('c:barChart') do # Write the c:barDir element. write_bar_dir @@ -440,11 +458,20 @@ series.each {|s| write_ser(s)} # write the c:marker element. write_marker_value - # Write the c:gapWidth element. - write_gap_width(@series_gap) + if ptrue?(params[:primary_axes]) + # Write the c:gapWidth element. + write_gap_width(@series_gap_1) + # Write the c:overlap element. + write_overlap(@series_overlap_1) + else + # Write the c:gapWidth element. + write_gap_width(@series_gap_2) + # Write the c:overlap element. + write_overlap(@series_overlap_2) + end # write the c:overlap element. write_overlap(@series_overlap) # Write the c:axId elements