我正在使用' gnuplot'用点绘制折线图:
set style data linespoints
set xlabel "number"
set ylabel "Dollars"
set yrange [0:250]
如何增加图表的宽度,以便我有更多的' x',我希望我的图形更像是一个矩形而不是一个正方形?
我怎样才能增加“y轴”的间隔?现在,它只是在y轴上每50个画一个标记?
答案 0 :(得分:11)
听起来您希望输出动态调整大小以适应绘制的数据。这是一个执行该操作的脚本:
#!/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),输出文件会更宽,如预期的那样:
要回答您的其他问题,您可以设置y tic增量:
set ytics <INCREMENT>
上面的脚本给出了一个例子。
答案 1 :(得分:5)
要添加到此处的讨论,还有set size ratio ...
,以便您可以设置绘图的宽高比。
以下摘自help set size
:
ratio
会导致gnuplot
尝试创建宽高比为的图表 (部分的y轴长度与x轴长度之比) 由<xscale>
和<yscale>
指定的图。负值的含义是不同的。如果= -1,则为gnuplot 尝试设置比例,以便单位在x上具有相同的长度 和y轴(例如适用于地理数据)。如果= -2,则 y上的单位是x上单位长度的两倍,依此类推。
为了真正起作用,您可能需要将输出驱动程序设置为合理的大小:
set term png size 800,400 #800 pixels by 400 pixels
或:
set term post size 8,4 #8 inches by 4 inches
这是所有终端依赖的,所以值得查看终端的帮助以查看它使用的单位等。
答案 2 :(得分:0)
设置xrange [:]
设置yrange [:]
使用这两个命令来定义图表的“大小”;)