2009-10-13 46 views

Trả lời

7

Có phải là gnuplot một tùy chọn có thể không ?:

require 'gnuplot.rb' 
Gnuplot.open { |gp| 
    Gnuplot::Plot.new(gp) { |plot| 
     plot.output "testgnu.pdf" 
     plot.terminal "pdf colour size 27cm,19cm" 

     plot.xrange "[-10:10]" 
     plot.title "Sin Wave Example" 
     plot.ylabel "x" 
     plot.xlabel "sin(x)" 

     plot.data << Gnuplot::DataSet.new("sin(x)") { |ds| 
      ds.with = "lines" 
      ds.linewidth = 4 
     } 
     plot.data << Gnuplot::DataSet.new("cos(x)") { |ds| 
      ds.with = "impulses" 
      ds.linewidth = 4 
     } 
    } 
} 
+0

gnuplot rất ngọt, nhưng bằng cách nào đó tôi không thể lấy ví dụ chạy. Chỉ cần cài đặt đá quý. Chạy 1.8.6 trên Windows. Bất kỳ ý tưởng/bổ sung cần thiết? – gmile

+1

Xin lỗi nếu điều này không rõ ràng, nhưng bạn đã cài đặt gnuplot chưa? Bit Ruby chỉ là các ràng buộc, AFAIK –

+0

Để trả lời @Brent: đây là trang để tải xuống gnuplot: http://www.gnuplot.info/download.html –

1

Đây là đi để tôi thư viện vẽ đồ: SVG::Graph

+0

Cái này chỉ làm việc cho tôi. Nhưng - tôi có thể tạo ra biểu đồ hàm liên tục thay vì chỉ chấm chấm? – gmile

0

Tôi thực sự thích tioga. Nó có thể tạo ra các biểu đồ chất lượng cao, xuất bản sẵn sàng trong mủ cao su.

+0

tioga chỉ dành cho hệ điều hành POSIX Chỉ dành cho gia đình :-( – gmile

+0

ah Sau khi cập nhật các cửa sổ của bạn – Peter

+0

Thực ra, Tioga hoạt động trên các cửa sổ hiện nay, mặc dù có lẽ các yêu cầu cho việc cài đặt MikTeX là đau đớn. –

0

sử dụng SVG::Graph::Line như thế này:

require 'SVG/Graph/Line' 

    fields = %w(Jan Feb Mar); 
    data_sales_02 = [12, 45, 21] 
    data_sales_03 = [15, 30, 40] 

    graph = SVG::Graph::Line.new({ 
      :height => 500, 
      :width => 300, 
    :fields => fields, 
    }) 

    graph.add_data({ 
      :data => data_sales_02, 
    :title => 'Sales 2002', 
    }) 

    graph.add_data({ 
      :data => data_sales_03, 
    :title => 'Sales 2003', 
    }) 

    print "Content-type: image/svg+xml\r\n\r\n"; 
    print graph.burn();
4

Trong trường hợp bất cứ ai tình cờ khác trên này, tôi đã có thể sử dụng gnuplot sử dụng đoạn mã sau:

require 'rubygems' 
require 'gnuplot' 

Gnuplot.open do |gp| 
    Gnuplot::Plot.new(gp) do |plot| 

    plot.xrange "[-10:10]" 
    plot.title "Sin Wave Example" 
    plot.ylabel "x" 
    plot.xlabel "sin(x)" 

    plot.data << Gnuplot::DataSet.new("sin(x)") do |ds| 
     ds.with = "lines" 
     ds.linewidth = 4 
    end 
    end 
end 

Yêu cầu rubygems và sử dụng tên ngọc đúng cho gnuplot là chìa khóa cho tôi.

Các vấn đề liên quan