12

'gnuplot'を使用して、点のある折れ線グラフをプロットしています。

set style data linespoints
set xlabel "number"

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

グラフの幅を増やすにはどうすればよいですか。「x」が多いほど、グラフを正方形ではなく長方形にしたいのですが。

また、「y軸」の間隔を増やすにはどうすればよいですか?今、それは私のy軸の50ごとにマークを描くだけですか?

4

3 に答える 3

14

プロットされているデータに合わせて出力のサイズを動的に調整したいようです。これを行うスクリプトは次のとおりです。

#!/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

これらのサンプルデータの場合:

0 50
50 150 
100 400 
150 500 
200 300

次のプロットが表示されます。

ここに画像の説明を入力してください

本来あるべき正方形です(xで100単位をyで250単位に等しいと定義し、データは[(0,200)、(50,500)]の範囲に及びます)。別のデータポイント(400,300)を追加すると、予想どおり、出力ファイルの幅が広くなります。

ここに画像の説明を入力してください

他の質問に答えるために、次のようにytic増分を設定できます。

set ytics <INCREMENT>

上記のスクリプトは例を示しています。

于 2012-12-13T23:08:17.523 に答える
8

ここでの議論に追加するためにset size ratio ...、プロットのアスペクト比を設定できるようにすることもできます。

これがからの抜粋ですhelp set size

ratioおよびで指定されたプロットの部分内gnuplotで、アスペクト比(y軸の長さとx軸の長さの比)のグラフを作成しようとします。<xscale><yscale>

の負の値の意味は異なります。= -1の場合、gnuplotは、単位がx軸とy軸の両方で同じ長さになるようにスケールを設定しようとします(たとえば、地理データに適しています)。=-2の場合、yの単位はxの単位の2倍の長さになります。

これが実際に機能するためには、おそらく出力ドライバーを適切なサイズに設定する必要があります。

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

また:

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

これはすべて端末に依存するため、端末のヘルプを調べて、使用しているユニットなどを確認することは価値があります。

于 2012-12-14T01:32:28.813 に答える
0

xrange [:]を設定します

yrange [:]を設定します

これらの2つのコマンドを使用して、グラフの「サイズ」を定義します;)

于 2012-12-13T22:18:07.057 に答える