2012-12-13 55 views
7

Tôi đang sử dụng 'gnuplot' để vẽ một đồ thị phù hợp với điểm:gnuplot: Làm thế nào để tăng chiều rộng của đồ thị của tôi

set style data linespoints 
set xlabel "number" 

set ylabel "Dollars" 
set yrange [0:250] 

làm thế nào tôi có thể làm tăng độ rộng của đồ thị của tôi, vì vậy mà khi tôi có thêm 'x', tôi muốn đồ thị của tôi có nhiều hình chữ nhật thay vì hình vuông?

Và làm cách nào để tăng khoảng thời gian 'trục y' của tôi? bây giờ, nó chỉ vẽ một dấu cho mỗi 50 trong trục y của tôi?

Trả lời

11

Có vẻ như bạn muốn đầu ra của bạn để tự động điều chỉnh kích thước cho dữ liệu được vẽ. Dưới đây là một kịch bản nào đó:

#!/usr/bin/env gnuplot 

# don't make any output just yet 
set terminal unknown 

# plot the data file to get information on ranges 
plot 'data.dat' title 'My Moneys' 

# span of data in x and y 
xspan = GPVAL_DATA_X_MAX - GPVAL_DATA_X_MIN 
yspan = GPVAL_DATA_Y_MAX - GPVAL_DATA_Y_MIN 

# define the values in x and y you want to be one 'equivalent:' 
# that is, xequiv units in x and yequiv units in y will make a square plot 
xequiv = 100 
yequiv = 250 

# aspect ratio of plot 
ar = yspan/xspan * xequiv/yequiv 

# dimension of plot in x and y (pixels) 
# for constant height make ydim constant 
ydim = 200 
xdim = 200/ar 

# set the y tic interval 
set ytics 100 

# set the x and y ranges 
set xrange [GPVAL_DATA_X_MIN:GPVAL_DATA_X_MAX] 
set yrange [GPVAL_DATA_Y_MIN:GPVAL_DATA_Y_MAX] 

# set the labels 
set title 'Dollars in buckets' 
set xlabel 'number' 
set ylabel 'Dollars' 

set terminal png size xdim,ydim 
set output 'test.png' 
set size ratio ar 

set style data linespoints 

replot 

Đối với những dữ liệu Ví dụ:

0 50 
50 150 
100 400 
150 500 
200 300 

tôi nhận được cốt truyện sau:

enter image description here

Đó là về hình vuông, vì nó nên (Tôi đã xác định 100 đơn vị trong x bằng 250 đơn vị trong y và dữ liệu trải rộng trong phạm vi [(0,200), (50.500)]). Nếu tôi thêm một điểm dữ liệu (400.300), các tập tin đầu ra là rộng hơn, như mong đợi:

enter image description here

Để trả lời câu hỏi khác, bạn có thể thiết lập các increment tic y như sau:

set ytics <INCREMENT> 

Kịch bản trên đưa ra một ví dụ.

+0

Lưu ý bên: xác định kích thước trong lệnh terminal ('set terminal png size ...') xác định kích thước của tệp đầu ra thực tế và lệnh 'set size ratio 'đặt tỷ lệ khung hình của vùng trong đầu ra nơi cốt truyện được vẽ. Tôi đã làm cả hai để đảm bảo rằng tỷ lệ khung hình sẽ nhất quán. – andyras

0

bộ xrange [:]

bộ yrange [:]

Sử dụng những 2 lệnh để xác định 'kích thước' của đồ thị của bạn;)

+0

No. Tôi muốn thay đổi 'thứ nguyên' của biểu đồ. Nó luôn cho tôi một 'hình vuông'. Tôi muốn trục x dài hơn trục y. – michael

3

Để thêm vào cuộc thảo luận ở đây, cũng có set size ratio ... để bạn có thể đặt tỷ lệ co của ô của mình.

Dưới đây là một đoạn trích từ help set size:

ratio gây gnuplot để cố gắng tạo ra một đồ thị với tỷ lệ khung hình của (tỷ số giữa chiều dài trục y với độ dài trục x) trong phần của ô được chỉ định bởi <xscale><yscale>.

Ý nghĩa của giá trị âm cho khác nhau. Nếu = -1, gnuplot cố gắng đặt tỷ lệ sao cho đơn vị có cùng độ dài trên cả trục x và trục y (thích hợp cho dữ liệu địa lý). Nếu = -2, đơn vị trên y có hai lần chiều dài của đơn vị trên x, v.v.

Đối với điều này để thực sự làm việc, có thể bạn sẽ cần phải thiết lập trình điều khiển đầu ra đối với một số kích thước hợp lý:

set term png size 800,400 #800 pixels by 400 pixels 

hay:

set term post size 8,4 #8 inches by 4 inches 

Đây là tất cả các thiết bị đầu cuối phụ thuộc, vì vậy đáng để tìm kiếm trợ giúp của thiết bị đầu cuối để xem đơn vị nào sử dụng, v.v.

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