2012-01-31 19 views
44

Tôi thường vẽ đồ thị trong gnuplot vỏ nhanh chóng, như thế này:output.png từ gnuplot là không tốt như các con số từ vỏ nhắc

gunuplot> plot sin(x) with linespoints pointtype 3 

và con số này xuất hiện là rất tốt.

Hôm nay, tôi tiết kiệm đồ thị trong một file .png, như thế này:

gnuplot> set term png 
gnuplot> set output "output.png" 
gunuplot> plot sin(x) with linespoints pointtype 3 

Sau đó, tôi mở output.png với eog trong Ubuntu, như thế này:

$ eog output.png 

tôi thấy rằng, các output.png được hiển thị trong eog không tốt bằng con số được vẽ trong dấu nhắc.

Tại sao lại như vậy? Tôi có cần điều chỉnh một số cài đặt trước khi lưu output.png không?

PS

tôi thấy rằng một cách xung quanh nó, đầu tiên,

set term postscript 
set output "output.ps" 

sau đó trong vỏ linux,

$ convert output.ps output.jpg 

Bằng cách này một số loại giải quyết vấn đề của tôi.

+0

Bạn có thể giải thích về 'không tốt bằng' không? Có thể với một ảnh chụp màn hình so với png bạn tạo ra? – Woltan

+0

bởi 'không tốt như', tôi có nghĩa là hình từ vỏ nhắc được vẽ trên' wxt', và nó có một cái nhìn rất tốt về chiều rộng dòng. Nhưng con số trong 'output.png' trình bày một cái nhìn khác, đó là, chiều rộng dòng đã thay đổi cho tồi tệ hơn, nhưng tôi vẫn có thể hiểu được hình, nhưng không thoải mái với khung nhìn. – Alcott

+1

AFAIK mọi thiết bị đầu cuối trong gnuplot trông hơi khác một chút. Bạn có thể kiểm tra đầu ra của mỗi thiết bị đầu cuối bằng hàm gnuplot [test] (http://www.gnuplot.info/docs_4.2/gnuplot.html#x1-34200047). – Woltan

Trả lời

72

Nguồn của vấn đề của bạn với chất lượng PNG rất có thể là việc mất răng cưa bị thiếu trong thiết bị đầu cuối png của Gnuplot. Vì bạn không cung cấp ảnh chụp màn hình, tôi không chắc chắn ý của bạn là gì khi nói về dòng thông tin xấu, nhưng đây là cách nó trông cho tôi (trên MacOS). ảnh chụp màn hình này cho thấy đầu ra của sản lượng aquaterm mẹ đẻ gnuplot của:

A plot using gnuplot's native aquaterm output

Nếu chúng ta tạo ra một png sử dụng set term png, các đường trở thành "tăng vọt" và pixellated:

The sine curve, plotted using the png terminal

Tuy nhiên, có một phiên bản của thiết bị đầu cuối png sử dụng libs Cairo để hiển thị và điều đó làm cho đầu ra trở nên mịn màng hơn và đẹp hơn. set term pngcairo cho kết quả này:

The sine curve, plotted using the pngcairo terminal

Bạn có thể sử dụng set terminal để kiểm tra xem phiên bản thiết bị đầu cuối này có sẵn cho bạn. Nếu có, điều này sẽ giúp bạn tiết kiệm công việc chuyển đổi và cũng cung cấp chất lượng hình ảnh tốt hơn so với JPG (không phải là định dạng lý tưởng cho nghệ thuật đường).

+1

đó là những gì tôi đang nói về, cảm ơn. – Alcott

+4

+1 Để có kết quả tốt đẹp bởi jstarek! – Woltan

8

Ngoài ra, nếu bạn muốn hình ảnh chất lượng chuyên nghiệp (sẵn sàng xuất bản) với gnuplot, bạn nên xem qua đầu cuối epslatex. Tôi đã sử dụng nó rộng rãi cho luận án của tôi và các bài báo của tôi với kết quả rất tốt đẹp, hầu như không có vấn đề pixelation, tính di động khi chuyển đổi hình ảnh sang pdf, và gần như tất cả các khả năng của Latex.

13

Kích thước mặc định của hình ảnh PNG được tạo ra gnuplot với đầu cuối PNG là 640x480 pixel.Độ phân giải này trong một số trường hợp nhất định có thể dẫn đến biểu đồ "pixelated" không tốt bằng các biểu đồ được tạo trên màn hình với thiết bị đầu cuối mặc định (wxt).

Bạn có thể thay đổi độ phân giải của hình ảnh đầu ra bằng cách sử dụng tùy chọn kích thước:

set terminal png size <x,y> 

trong đó x và y là các số mong muốn của pixel dọc theo trục ngang và dọc, tương ứng. Ví dụ:

set terminal png size 1024,768 

Xin lưu ý rằng, hình ảnh có độ phân giải lớn hơn sẽ tạo ra các tệp có kích thước lớn hơn trên đĩa. Ngoài ra, bạn có thể thử sử dụng các đầu cuối không raster như "post eps" hoặc "pdf" nếu có trên máy của bạn, có thể cung cấp cho bạn hình ảnh di động có thể mở rộng và có chất lượng cao mà không có dấu chân đĩa lớn.

+0

Điều này cũng thay đổi kích thước phông chữ tương đối - cốt truyện thay đổi nhưng nhãn, tiêu đề, v.v. –

1

Nhận xét: bạn sử dụng tệp JPEG làm ví dụ. Bạn có lẽ không bao giờ nên sử dụng JPEG cho các ô dòng trừ khi chúng có ảnh làm nền. JPEG chỉ đơn giản là không được thiết kế để xử lý các cạnh sắc nét của bản vẽ đường kẻ.

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