如何在gnuplot中以绘图坐标的单位设置点大小?
换句话说,如果我增加xrange,则点应该变小。
看起来这完全取决于终端。有没有一种解决方法?
这里是一个使用内联数据的小例子...
plot '-' u 1:2:1 ps variable
1 2
2 3
3 4
4 5
5 6
e
default_value=1.0
func(x)=1.0*x #Change this to change the functional dependence of the pointsize on x.
scale_point(x)=(GPVAL_TERM=="postscript") ? 1.0*func(x) :\
(GPVAL_TERM=="png") ? 2.0*(x) :\
default_value
plot "mydata.dat" u 1:2:(scale_point($1)) w pt ps variable
编辑
请注意,我的点随着x的增大呈线性增长,但您可以替换任何您想要的函数,使点在您认为合适的情况下变小。 我想说的是,我认为这个选项不存在,因为正如您所说,“所有这些都依赖于终端”。我试图提供一个丑陋的hack,让您能够在最小干预的情况下针对每个绘图进行修改,从而允许使用不同的终端等。
编辑2
在回应您的评论时,我记起了gnuplot文档中一个奇怪的小角落,可能会有所帮助。
set style fill transparent solid noborder #whatever fillstyle you want...
plot 'mydata' u 1:2:3 w circles
请查看帮助圆
...我不确定这个功能是什么时候引入的,可能是在gnuplot 4.3中,但如果您正在使用4.2,则可以尝试并告诉我结果如何...
sps(a,b) = 1./(b-a)
设置您的xrange:
set xrange [0:3]
plot sin(X)
我们这样做是为了定义一些gnuplot的特殊变量。现在我们可以这样做:
plot sin(x) with points pt 7 ps sps(GPVAL_X_MIN, GPVAL_X_MAX)
如果您现在重置xrange并重新输入两个绘图命令,您将看到点大小会随着xrange的反比例变化。您可能希望使用不同于我所使用的“sps”示例的点大小函数。我希望这是您想要的内容。