ctioga2 0.0 → 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. data/Changelog +25 -1
  2. data/lib/ctioga2/commands/commands.rb +13 -2
  3. data/lib/ctioga2/commands/doc/doc.rb +13 -17
  4. data/lib/ctioga2/commands/doc/documentation-commands.rb +14 -1
  5. data/lib/ctioga2/commands/doc/help.rb +136 -25
  6. data/lib/ctioga2/commands/doc/html.rb +56 -4
  7. data/lib/ctioga2/commands/doc/introspection.rb +45 -9
  8. data/lib/ctioga2/commands/doc/man.rb +7 -5
  9. data/lib/ctioga2/commands/doc/markup.rb +39 -12
  10. data/lib/ctioga2/commands/doc/wordwrap.rb +70 -0
  11. data/lib/ctioga2/commands/general-commands.rb +7 -4
  12. data/lib/ctioga2/commands/general-types.rb +27 -12
  13. data/lib/ctioga2/commands/interpreter.rb +2 -2
  14. data/lib/ctioga2/commands/parsers/command-line.rb +9 -5
  15. data/lib/ctioga2/commands/parsers/file.rb +5 -3
  16. data/lib/ctioga2/commands/type.rb +10 -3
  17. data/lib/ctioga2/commands/variables.rb +2 -2
  18. data/lib/ctioga2/data/backends/backend.rb +17 -15
  19. data/lib/ctioga2/data/backends/backends.rb +2 -2
  20. data/lib/ctioga2/data/backends/backends/gnuplot.rb +20 -5
  21. data/lib/ctioga2/data/backends/backends/math.rb +2 -2
  22. data/lib/ctioga2/data/backends/backends/text.rb +112 -17
  23. data/lib/ctioga2/data/backends/description.rb +10 -11
  24. data/lib/ctioga2/data/datacolumn.rb +73 -14
  25. data/lib/ctioga2/data/dataset.rb +305 -9
  26. data/lib/ctioga2/data/filters.rb +49 -1
  27. data/lib/ctioga2/data/indexed-dtable.rb +137 -0
  28. data/lib/ctioga2/data/point.rb +98 -7
  29. data/lib/ctioga2/data/stack.rb +98 -21
  30. data/lib/ctioga2/graphics/coordinates.rb +19 -2
  31. data/lib/ctioga2/graphics/elements.rb +12 -2
  32. data/lib/ctioga2/graphics/elements/containers.rb +14 -2
  33. data/lib/ctioga2/graphics/elements/contour.rb +67 -0
  34. data/lib/ctioga2/graphics/elements/curve2d.rb +103 -42
  35. data/lib/ctioga2/graphics/elements/element.rb +12 -2
  36. data/lib/ctioga2/graphics/elements/gradient-region.rb +94 -0
  37. data/lib/ctioga2/graphics/elements/parametric2d.rb +172 -0
  38. data/lib/ctioga2/graphics/elements/primitive.rb +37 -21
  39. data/lib/ctioga2/graphics/elements/region.rb +143 -0
  40. data/lib/ctioga2/graphics/elements/subplot.rb +92 -32
  41. data/lib/ctioga2/graphics/elements/tangent.rb +99 -0
  42. data/lib/ctioga2/graphics/elements/xyz-map.rb +126 -0
  43. data/lib/ctioga2/graphics/generator.rb +91 -6
  44. data/lib/ctioga2/graphics/legends.rb +26 -21
  45. data/lib/ctioga2/graphics/legends/area.rb +8 -8
  46. data/lib/ctioga2/graphics/legends/items.rb +5 -5
  47. data/lib/ctioga2/graphics/legends/storage.rb +4 -2
  48. data/lib/ctioga2/graphics/root.rb +24 -2
  49. data/lib/ctioga2/graphics/styles.rb +8 -0
  50. data/lib/ctioga2/graphics/styles/axes.rb +49 -23
  51. data/lib/ctioga2/graphics/styles/base.rb +2 -2
  52. data/lib/ctioga2/graphics/styles/carrays.rb +9 -2
  53. data/lib/ctioga2/graphics/styles/colormap.rb +272 -0
  54. data/lib/ctioga2/graphics/styles/curve.rb +64 -4
  55. data/lib/ctioga2/graphics/styles/drawable.rb +68 -9
  56. data/lib/ctioga2/graphics/styles/errorbar.rb +73 -0
  57. data/lib/ctioga2/graphics/styles/factory.rb +133 -17
  58. data/lib/ctioga2/graphics/styles/gradients.rb +60 -0
  59. data/lib/ctioga2/graphics/styles/location.rb +64 -0
  60. data/lib/ctioga2/graphics/styles/map-axes.rb +164 -0
  61. data/lib/ctioga2/graphics/styles/plot.rb +165 -62
  62. data/lib/ctioga2/graphics/styles/sets.rb +14 -1
  63. data/lib/ctioga2/graphics/styles/texts.rb +44 -34
  64. data/lib/ctioga2/graphics/subplot-commands.rb +94 -6
  65. data/lib/ctioga2/graphics/types.rb +113 -35
  66. data/lib/ctioga2/graphics/types/bijection.rb +3 -3
  67. data/lib/ctioga2/graphics/types/boundaries.rb +120 -1
  68. data/lib/ctioga2/graphics/types/dimensions.rb +8 -1
  69. data/lib/ctioga2/graphics/types/grid.rb +196 -0
  70. data/lib/ctioga2/graphics/types/location.rb +228 -0
  71. data/lib/ctioga2/graphics/types/point.rb +2 -2
  72. data/lib/ctioga2/log.rb +18 -18
  73. data/lib/ctioga2/metabuilder/type.rb +15 -3
  74. data/lib/ctioga2/metabuilder/types.rb +2 -2
  75. data/lib/ctioga2/metabuilder/types/coordinates.rb +13 -1
  76. data/lib/ctioga2/metabuilder/types/data.rb +50 -0
  77. data/lib/ctioga2/metabuilder/types/generic.rb +60 -0
  78. data/lib/ctioga2/metabuilder/types/lists.rb +53 -16
  79. data/lib/ctioga2/metabuilder/types/styles.rb +26 -45
  80. data/lib/ctioga2/plotmaker.rb +91 -20
  81. data/lib/ctioga2/postprocess.rb +8 -8
  82. data/lib/ctioga2/utils.rb +23 -4
  83. metadata +107 -75
  84. data/lib/ctioga2/data/merge.rb +0 -43
@@ -0,0 +1,73 @@
1
+ # drawable.rb: style objects pertaining to drawable objects.
2
+ # copyright (c) 2009 by Vincent Fourmond
3
+
4
+ # This program is free software; you can redistribute it and/or modify
5
+ # it under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation; either version 2 of the License, or
7
+ # (at your option) any later version.
8
+
9
+ # This program is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ # GNU General Public License for more details (in the COPYING file).
13
+
14
+ require 'ctioga2/utils'
15
+ require 'ctioga2/log'
16
+
17
+
18
+ # This module contains all the classes used by ctioga
19
+ module CTioga2
20
+
21
+ Version::register_svn_info('$Revision: 123 $', '$Date: 2010-01-10 02:45:47 +0100 (Sun, 10 Jan 2010) $')
22
+
23
+ module Graphics
24
+
25
+ # All the styles
26
+ module Styles
27
+
28
+ # This class represents the stylistic information necessary to
29
+ # draw an error bar. It derives from StrokeStyle, as it is
30
+ # essentially a stroke.
31
+ class ErrorBarStyle < StrokeStyle
32
+
33
+ # The error bar style. For now, not much here.
34
+ attr_accessor :style
35
+
36
+ # Shows an error bar with the appropriate stylistic
37
+ # information. _x_ and _y_ are the coordinates of the data
38
+ # point. The corresponding _min_ and _max_ are the minimum and
39
+ # maximum values for the error bars. If either is _nil_, no
40
+ # error bar on that direction is drawn.
41
+ #
42
+ # \todo maybe make provisions (one day) for complex error bars
43
+ # showing min/max and stddev as well ?
44
+ def show_error_bar(t, x, xmin, xmax, y, ymin, ymax)
45
+ d = { 'x' => x,
46
+ 'y' => y,
47
+ 'color' => @color || Tioga::ColorConstants::Black,
48
+ 'line_width' => @width || 1.0,
49
+ }
50
+ has = false
51
+ if (xmin && xmax && (xmax - xmin != 0))
52
+ d['dx_plus'] = xmax - x
53
+ d['dx_minus'] = x - xmin
54
+ has = true
55
+ end
56
+
57
+ if (ymin && ymax && (ymax - ymin != 0))
58
+ d['dy_plus'] = ymax - y
59
+ d['dy_minus'] = y - ymin
60
+ has = true
61
+ end
62
+ # We won't draw something when there isn't anything to draw
63
+ # !
64
+ if(has)
65
+ t.show_error_bars(d)
66
+ end
67
+ end
68
+ end
69
+
70
+ end
71
+ end
72
+ end
73
+
@@ -17,7 +17,7 @@ require 'ctioga2/log'
17
17
  # This module contains all the classes used by ctioga
18
18
  module CTioga2
19
19
 
20
- Version::register_svn_info('$Revision: 59 $', '$Date: 2009-05-28 23:15:50 +0200 (Thu, 28 May 2009) $')
20
+ Version::register_svn_info('$Revision: 217 $', '$Date: 2010-12-31 16:18:20 +0100 (Fri, 31 Dec 2010) $')
21
21
 
22
22
  module Graphics
23
23
 
@@ -52,18 +52,23 @@ module CTioga2
52
52
  # The MetaBuilder::Type object that can convert a String to
53
53
  # an Array suitable for use with CircularArray.
54
54
  attr_accessor :sets_type
55
+
56
+ # If this attribute is on, then CurveStyleFactory will not
57
+ # generate commands for this parameter, only the option.
58
+ attr_accessor :disable_commands
55
59
 
56
60
 
57
61
  # Creates a new CurveStyleFactoryParameter object.
58
62
  def initialize(name, type, sets, description,
59
- short_option = nil)
63
+ short_option = nil, disable_cmds = false)
60
64
  @name = name
61
65
  @type = Commands::CommandType.get_type(type)
62
66
  @sets = sets
63
67
  @description = description
64
68
  @short_option = short_option
65
-
66
- # TODO: it is not very satisfying to mix CommandTypes and
69
+ @disable_commands = disable_cmds
70
+
71
+ ## \todo it is not very satisfying to mix CommandTypes and
67
72
  # MetaBuilder::Type on the same level.
68
73
  if @sets
69
74
  @sets_type =
@@ -95,11 +100,16 @@ module CTioga2
95
100
  # Sets some parameter to _false_.
96
101
  DisableRE = /no(ne)?|off/i
97
102
 
103
+ # If that matches, we use the value as a link to other values.
104
+ LinkRE = /(?:=|->)(\S+)/
98
105
 
99
106
 
100
107
  # Creates a new parameter for the style factory.
108
+ #
109
+ # \todo add a way to add some more text to the description;
110
+ # possibly a self.describe_parameter function ?
101
111
  def self.define_parameter(target, name, type, sets, description,
102
- short_option = nil)
112
+ short_option = nil, disable_cmds = false)
103
113
  # We define two new types:
104
114
  # - first, the color-or-auto type:
105
115
  base_type = Commands::CommandType.get_type(type)
@@ -112,9 +122,12 @@ module CTioga2
112
122
  mb_type.re_shortcuts[AutoRE] = 'auto'
113
123
  mb_type.re_shortcuts[DisableRE] = false
114
124
 
125
+ # Add passthrough for expressions such as =color...
126
+ mb_type.passthrough = LinkRE
127
+
115
128
  # Now, register a type for the type or automatic.
116
129
  CmdType.new("#{base_type.name}-or-auto", mb_type,
117
- "Same thing as type #{base_type.name}, or 'auto'")
130
+ "Same thing as {type:#{base_type.name}}, or @auto@ to let the style factory handle automatically.")
118
131
 
119
132
  end
120
133
 
@@ -125,11 +138,12 @@ module CTioga2
125
138
  :subtype => base_type.type,
126
139
  :shortcuts => sets
127
140
  } ,
128
- "Sets of #{base_type.name}")
141
+ "Sets of {type: #{base_type.name}}")
129
142
  end
130
143
  param =
131
144
  CurveStyleFactoryParameter.new(name, type, sets,
132
- description, short_option)
145
+ description, short_option,
146
+ disable_cmds)
133
147
  @parameters ||= {}
134
148
  @parameters[target] = param
135
149
 
@@ -151,8 +165,8 @@ module CTioga2
151
165
  # The CmdGroup for stylistic information about
152
166
  # curves.
153
167
  CurveStyleGroup =
154
- CmdGroup.new('curve-style', "Curve styles",
155
- "Set stylistic details about curves", 1)
168
+ CmdGroup.new('curve-style', "Curves styles",
169
+ "Set stylistic details of curves or other object drawn from data", 1)
156
170
 
157
171
 
158
172
  # Creates two commands for each parameter of the object:
@@ -160,6 +174,7 @@ module CTioga2
160
174
  # * a command to choose the sets.
161
175
  def self.create_commands
162
176
  parameters.each do |target, param|
177
+ next if param.disable_commands
163
178
  override_cmd =
164
179
  Cmd.new("#{param.name}",
165
180
  param.short_option,
@@ -168,12 +183,13 @@ module CTioga2
168
183
  CmdArg.new("#{param.type.name}-or-auto")
169
184
  ], {},
170
185
  "Sets the #{param.description} for subsequent curves",
171
- "Sets the #{param.description} for subsequent curves, until cancelled with 'auto' as argument.", CurveStyleGroup) do |plotmaker, value|
186
+ "Sets the #{param.description} for subsequent curves, until cancelled with @auto@ as argument.", CurveStyleGroup) do |plotmaker, value|
172
187
  plotmaker.curve_generator.style_factory.
173
188
  set_parameter_override(target, value)
174
189
  end
175
190
 
176
191
  if param.sets
192
+ next if param.disable_commands
177
193
  set_cmd =
178
194
  Cmd.new("#{param.name}-set",
179
195
  nil,
@@ -182,10 +198,12 @@ module CTioga2
182
198
  CmdArg.new("#{param.type.name}-set")
183
199
  ], {},
184
200
  "Chooses a set for the #{param.description} of subsequent curves",
185
- "Chooses a set for the #{param.description} of subsequent curves",
201
+ "Chooses a set for the #{param.description} of subsequent curves. Also sets {command: #{param.name}} to @auto@, so that the set takes effect immediately",
186
202
  CurveStyleGroup) do |plotmaker, value|
187
203
  plotmaker.curve_generator.style_factory.
188
204
  set_parameter_set(target, value)
205
+ plotmaker.curve_generator.style_factory.
206
+ set_parameter_override(target, 'auto')
189
207
  end
190
208
  end
191
209
  end
@@ -244,8 +262,7 @@ module CTioga2
244
262
  end
245
263
  base.merge!(@override_parameters)
246
264
  base.merge!(hash_name_to_target(one_time))
247
- # TODO: here, resolve 'links', such as :->color ?
248
- return CurveStyle.from_hash(base)
265
+ return CurveStyle.from_hash(resolve_links(base))
249
266
  end
250
267
 
251
268
 
@@ -265,8 +282,18 @@ module CTioga2
265
282
  if value =~ AutoRE
266
283
  @override_parameters.delete(target)
267
284
  return
268
- end
269
- if value =~ DisableRE
285
+ elsif value =~ LinkRE
286
+ t = $1
287
+ convert = self.class.name_to_target
288
+ if convert.key?(t)
289
+ value = "=#{convert[t]}".to_sym
290
+ else
291
+ warn { "No known key: #{t}, treating as auto" }
292
+ @override_parameters.delete(target)
293
+ return
294
+ end
295
+
296
+ elsif value =~ DisableRE
270
297
  value = false
271
298
  else
272
299
  value = param.type.string_to_type(value)
@@ -287,6 +314,8 @@ module CTioga2
287
314
  end
288
315
 
289
316
  # Now, the parameters:
317
+
318
+ # Lines:
290
319
  define_parameter 'line_color', 'color', 'color',
291
320
  Sets::ColorSets, "color", "-c"
292
321
 
@@ -296,6 +325,7 @@ module CTioga2
296
325
  define_parameter 'line_style', 'line-style', 'line-style',
297
326
  Sets::LineStyleSets, "line style", nil
298
327
 
328
+ # Markers
299
329
  define_parameter 'marker_marker', 'marker', 'marker',
300
330
  Sets::MarkerSets, "marker", '-m'
301
331
 
@@ -305,6 +335,53 @@ module CTioga2
305
335
  define_parameter 'marker_scale', 'marker-scale', 'float',
306
336
  Sets::LineWidthSets, "marker scale", nil
307
337
 
338
+ # Error bars:
339
+ define_parameter 'error_bar_color', 'error-bar-color', 'color',
340
+ Sets::ColorSets, "error bar color", nil
341
+
342
+ # Location:
343
+ define_parameter 'location_xaxis', 'xaxis', 'axis',
344
+ nil, "X axis", nil, true
345
+
346
+ define_parameter 'location_yaxis', 'yaxis', 'axis',
347
+ nil, "Y axis", nil, true
348
+
349
+ # Now, fill style
350
+ define_parameter 'fill_y0', 'fill', 'fill-until',
351
+ {}, "Fill until", nil
352
+
353
+ define_parameter 'fill_color', 'fill-color', 'color',
354
+ Sets::ColorSets, "fill color", nil
355
+
356
+ define_parameter 'fill_transparency', 'fill-transparency', 'float',
357
+ {}, "Fill transparency", nil
358
+
359
+ # Region handling
360
+ define_parameter 'region_position', 'region-side', 'region-side',
361
+ {"default" => [:above, :below]}, "region side", nil
362
+
363
+
364
+ define_parameter 'style', 'style', 'text',
365
+ {}, "Path style", nil
366
+
367
+ # Only for xyz-maps or xy-parametric
368
+ define_parameter 'color_map', 'color-map', 'colormap',
369
+ nil, "Color map", nil
370
+
371
+
372
+ define_parameter 'zaxis', 'zaxis', 'text',
373
+ nil, "Name for the Z axis", nil
374
+
375
+ ## @todo For xy-parametric, there should be a way to specify
376
+ ## to which z value the maps apply (ie lines = y2, marker =
377
+ ## y3...). Although for readability, it is probably better
378
+ ## to avoid that...
379
+ define_parameter 'marker_color_map', 'marker-color-map', 'colormap',
380
+ nil, "Marker color map", nil
381
+
382
+ define_parameter 'split_on_nan', 'split-on-nan', 'boolean',
383
+ nil, "Split on NaN", nil
384
+
308
385
 
309
386
  # And finally, we register all necessary commands...
310
387
  create_commands
@@ -339,11 +416,50 @@ module CTioga2
339
416
  if convert.key? k
340
417
  retval[convert[k]] = v
341
418
  else
342
- warn "Unkown key for hash_name_to_target: #{k}"
419
+ warn { "Unkown key for hash_name_to_target: #{k}" }
343
420
  end
344
421
  end
345
422
  return retval
346
423
  end
424
+
425
+ # Resolve potential links in the form of :=stuff within the
426
+ # given hash, and returns a new version of the hash.
427
+ #
428
+ # \warning the _h_ parameter is completely destroyed in the
429
+ # process
430
+ def resolve_links(h)
431
+ tv = {}
432
+
433
+ # First, copy plain values
434
+ for k,v in h
435
+ if v.is_a?(Symbol) && v.to_s =~ /^(=|->)/
436
+ # We keep for later
437
+ else
438
+ tv[k] = v
439
+ h.delete(k)
440
+ end
441
+ end
442
+
443
+ # Now, we will iterate over the remaining things; we will
444
+ # stop with an error if the number of remaining keys does
445
+ # not decrease after one step
446
+ while h.size > 0
447
+ pre_size = h.size
448
+ for k,v in h
449
+ v.to_s =~ /^(?:=|->)(\S+)/
450
+ target = $1
451
+ if tv.key? target
452
+ tv[k] = tv[target]
453
+ h.delete(k)
454
+ end
455
+ end
456
+ if h.size >= pre_size
457
+ raise "Error: infinite recursion loop while gathering styles"
458
+ end
459
+ end
460
+
461
+ return tv
462
+ end
347
463
  end
348
464
  end
349
465
  end
@@ -0,0 +1,60 @@
1
+ # gradients.rb: objects dealing with (color) gradients
2
+ # copyright (c) 2009 by Vincent Fourmond
3
+
4
+ # This program is free software; you can redistribute it and/or modify
5
+ # it under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation; either version 2 of the License, or
7
+ # (at your option) any later version.
8
+
9
+ # This program is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ # GNU General Public License for more details (in the COPYING file).
13
+
14
+ require 'ctioga2/utils'
15
+ require 'ctioga2/log'
16
+
17
+ require 'ctioga2/graphics/coordinates'
18
+
19
+ # This module contains all the classes used by ctioga
20
+ module CTioga2
21
+
22
+ Version::register_svn_info('$Revision: 168 $', '$Date: 2010-10-22 13:03:33 +0200 (Fri, 22 Oct 2010) $')
23
+
24
+ module Graphics
25
+
26
+ module Styles
27
+
28
+
29
+ # A color gradient with two points
30
+ #
31
+ # \todo There could be many more
32
+ #
33
+ # @todo This will have to be replaced by a real color map based
34
+ # on what
35
+ class TwoPointGradient < BasicStyle
36
+
37
+ include Log
38
+
39
+ # The starting color (for x = 0)
40
+ attr_accessor :start
41
+
42
+ # The ending color (for x = 1)
43
+ attr_accessor :end
44
+
45
+ def initialize(s,e)
46
+ warn { "This class shouldn't be used anymore at #{caller.inspect}" }
47
+ @start = s
48
+ @end = e
49
+ end
50
+
51
+ # Returns the color for the given value of _x_ (between 0 and 1)
52
+ def color(x)
53
+ return Utils::mix_objects(@end,@start, x)
54
+ end
55
+
56
+ end
57
+
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,64 @@
1
+ # drawable.rb: style objects pertaining to drawable objects.
2
+ # copyright (c) 2009 by Vincent Fourmond
3
+
4
+ # This program is free software; you can redistribute it and/or modify
5
+ # it under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation; either version 2 of the License, or
7
+ # (at your option) any later version.
8
+
9
+ # This program is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ # GNU General Public License for more details (in the COPYING file).
13
+
14
+ require 'ctioga2/utils'
15
+ require 'ctioga2/log'
16
+
17
+ # This module contains all the classes used by ctioga
18
+ module CTioga2
19
+
20
+ Version::register_svn_info('$Revision: 133 $', '$Date: 2010-01-18 21:37:36 +0100 (Mon, 18 Jan 2010) $')
21
+
22
+ module Graphics
23
+
24
+ # All the styles
25
+ module Styles
26
+
27
+ # This class represents various aspects of the location of a
28
+ # object within a plot, such as:
29
+ #
30
+ # * X and Y axes
31
+ # * foreground/normal/background position
32
+ # * whether it should be clipped or not.
33
+ #
34
+ # \todo currently only X and Y axes are implemented.
35
+ class LocationStyle < BasicStyle
36
+
37
+ # The name of the X axis, something to be fed to
38
+ # PlotStyle#get_axis_key
39
+ attr_accessor :xaxis
40
+
41
+ # The name of the Y axis
42
+ attr_accessor :yaxis
43
+
44
+ # Given a PlotStyle object, returns the axes keys as would
45
+ # PlotStyle#get_axis_key
46
+ def get_axis_keys(plot_style)
47
+ return [
48
+ plot_style.get_axis_key(@xaxis || 'x'),
49
+ plot_style.get_axis_key(@yaxis || 'y')
50
+ ]
51
+ end
52
+
53
+ # Finalizes the location of the object, that is (for now)
54
+ # resolves references to default axes.
55
+ def finalize!(plot_style)
56
+ @xaxis, @yaxis = *get_axis_keys(plot_style)
57
+ end
58
+
59
+ end
60
+
61
+ end
62
+ end
63
+ end
64
+