diff options
Diffstat (limited to 'ruby_1_8_6/ext/tk/sample/tkextlib/tcllib/plotdemos3.rb')
-rw-r--r-- | ruby_1_8_6/ext/tk/sample/tkextlib/tcllib/plotdemos3.rb | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/ruby_1_8_6/ext/tk/sample/tkextlib/tcllib/plotdemos3.rb b/ruby_1_8_6/ext/tk/sample/tkextlib/tcllib/plotdemos3.rb new file mode 100644 index 0000000000..2b5c7642bb --- /dev/null +++ b/ruby_1_8_6/ext/tk/sample/tkextlib/tcllib/plotdemos3.rb @@ -0,0 +1,83 @@ +#!/usr/bin/ruby + +require 'tk' +require 'tkextlib/tcllib/plotchart' + +############################### +# Set up a strip chart +############################### + +Tk::Tcllib::Plotchart::Stripchart.new([0.0, 100.0, 10.0], + [0.0, 100.0, 20.0], + :background=>'white', + :width=>400, :height=>200){|chart| + title "Aha!" + pack(:fill=>:both, :side=>:top) + + series1 = Tk::Tcllib::Plotchart::PlotSeries.new(chart) + series2 = Tk::Tcllib::Plotchart::PlotSeries.new(chart) + + xd = 15.0 + yd = 30.0 + + TkTimer.new(500, -1, proc{|obj| # obj --> TkTimer object + xold, yold = obj.return_value + xnew = xold + xd + ynew = yold + (rand() - 0.5) * yd + ynew2 = yold + (rand() - 0.5) * 2.0 * yd + + series1.plot(xnew, ynew) + series2.plot(xnew, ynew2) + + obj.stop if xnew >= 200 + + [xnew, ynew] # return_value + }).start(100, proc{ [0.0, 50.0] }) # init return_value +} + +############################### +# Set up an isometric plot +############################### +Tk::Tcllib::Plotchart::IsometricPlot.new([0.0, 100.0], [0.0, 200.0], :noaxes, + :background=>'white', + :width=>400, :height=>200){|chart| + pack(:fill=>:both, :side=>:top) + set_zoom_pan + + chart.plot('rectangle', [10.0, 10.0, 50.0, 50.0], 'green') + chart.plot('filled-rectangle', [20.0, 20.0, 40.0, 40.0], 'red') + chart.plot('filled-circle', [70.0, 70.0, 40.0], 'yellow') + chart.plot('circle', [70.0, 70.0, 42.0]) +} + +############################### +# Check the symbols +############################### +TkToplevel.new(:title=>'h'){|h| + Tk::Tcllib::Plotchart::XYPlot.new(h, [0.0, 100.0, 10.0], + [0.0, 100.0, 20.0], + :bg=>'white', + :width=>400, :height=>200){|chart| + pack(:fill=>:both) + + yconfig(:format=>"%12.2e") + + series1 = Tk::Tcllib::Plotchart::PlotSeries.new(chart, :colour=>'red', + :type=>:symbol) + series2 = Tk::Tcllib::Plotchart::PlotSeries.new(chart, :colour=>'green', + :type=>:both) + + x = 5.0 + %w(plus cross circle up down dot upfilled downfilled).each{|sym| + series1.dataconfig(:symbol=>sym) + series2.dataconfig(:symbol=>sym) + series1.plot(x, 50.0) + series2.plot(x, 20) + x += 10 + } + } +} + +############################## + +Tk.mainloop |