@@ -70,8 +70,8 @@ def initialize figure, width, height, position
7070
7171 @x_title = ''
7272 @y_title = ''
73- @x_range = [ 0 , 0 ]
74- @y_range = [ 0 , 0 ]
73+ @x_range = [ nil , nil ]
74+ @y_range = [ nil , nil ]
7575 @x_tick_count = :default
7676 @y_tick_count = :default
7777
@@ -136,7 +136,9 @@ def bar! *args, &block
136136 end
137137
138138 def line! *args , &block
139- add_plot "Line" , *args , &block
139+ plot = Rubyplot ::Artist ::Plot ::Line . new self
140+ yield ( plot ) if block_given?
141+ @plots << plot
140142 end
141143
142144 def area! *args , &block
@@ -181,9 +183,9 @@ def with_backend plot_type, *args
181183
182184 def prepare_xy_axes
183185 @x_axis = Rubyplot ::Artist ::XAxis . new (
184- self , @x_title , @geometry . x_min_value , @geometry . x_max_value )
186+ self , @x_title , @x_range [ 0 ] , @x_range [ 1 ] )
185187 @y_axis = Rubyplot ::Artist ::YAxis . new (
186- self , @y_title , @geometry . y_min_value , @geometry . y_max_value )
188+ self , @y_title , @y_range [ 0 ] , @y_range [ 1 ] )
187189 @x_axis . draw
188190 @y_axis . draw
189191 end
@@ -243,9 +245,9 @@ def setup_drawing
243245
244246 # Calculate spread of the data.
245247 def calculate_spread
246- @y_spread = @geometry . y_max_value . to_f - @geometry . y_min_value . to_f
247- unless @geometry . x_min_value . nil? && @geometry . x_max_value . nil?
248- @x_spread = @geometry . x_max_value . to_f - @geometry . x_min_value . to_f
248+ @y_spread = @y_range [ 1 ] . to_f - @y_range [ 0 ] . to_f
249+ unless @x_range [ 0 ] . nil? && @x_range [ 1 ] . nil?
250+ @x_spread = @x_range [ 1 ] . to_f - @x_range [ 0 ] . to_f
249251 @x_spread = @x_spread > 0 ? @x_spread : 1
250252 end
251253 end
@@ -280,7 +282,7 @@ def setup_graph_measurements
280282 else
281283 longest_left_label_width = @backend . string_width (
282284 @font , @marker_font_size ,
283- label_string ( @geometry . y_max_value . to_f , @geometry . increment ) )
285+ label_string ( @y_range [ 1 ] . to_f , @geometry . increment ) )
284286 end
285287
286288 # Shift graph if left line numbers are hidden
@@ -291,11 +293,14 @@ def setup_graph_measurements
291293 line_number_width +
292294 ( @geometry . y_axis_label . nil? ? 0.0 : @marker_caps_height + LABEL_MARGIN * 2 )
293295 # Make space for half the width of the rightmost column label.
294- last_label = @x_ticks . keys . max . to_i
295- extra_room_for_long_label = last_label >= ( @geometry . column_count - 1 ) &&
296- @geometry . center_labels_over_point ?
297- @backend . string_width ( @marker_font_size ,
298- @x_ticks [ last_label ] ) / 2.0 : 0
296+ # last_label = @x_ticks.keys.max.to_i
297+ # extra_room_for_long_label = last_label >= (@geometry.column_count - 1) &&
298+ # @geometry.center_labels_over_point ?
299+ # @backend.string_width(
300+ # @font,
301+ # @marker_font_size,
302+ # @x_ticks[last_label]) / 2.0 : 0
303+ extra_room_for_long_label = 0
299304 # Margins
300305 @graph_right_margin = @geometry . right_margin + extra_room_for_long_label
301306 @graph_bottom_margin = @geometry . bottom_margin + @marker_caps_height + LABEL_MARGIN
0 commit comments