gnuplot - 更改轴

时间:2015-07-02 15:40:37

标签: gnuplot axis evenly

我在cr.dat

中有以下数据
0.03 0.0227352
0.02 0.0276084
0.01 0.0386684
0.009 0.0407197
0.008 0.0431688
0.007 0.04612
0.006 0.0497781
0.005 0.0545085
0.004 0.0608376
0.003 0.069918
0.002 0.0844434

以下剧情剧本

set xtics ( 0.002, 0.003, 0.004, 0.005, 0.006, 0.007, 0.008, 0.009, 0.01, 0.02, 0.03)
plot "cr.dat" u 1:2 title "cr";

生成此图像 plot cr

是否可以去除0.01,0.02和0.03之间的大空间

我希望set xtics命令可以沿x轴均匀地绘制给定的抽搐。但事实并非如此。

更新

我使用xticlabels尝试了Irregular gnuplot x-values建议的解决方案,但这会产生一个奇怪的x和y轴。

新的剧情剧本是

set xtics ( 0.002, 0.003, 0.004, 0.005, 0.006, 0.007, 0.008, 0.009, 0.01, 0.02, 0.03)
plot "cr.dat" u xticlabels(1):2 title "cr";

结束结果 plot cr2

我误解了什么吗?

2 个答案:

答案 0 :(得分:1)

要获得均匀间隔的xtics,必须均匀地提供空间x值。可以使用xticlabel函数为这些x值中的每一个赋予从数据文件中获取的自定义标签。请注意,此函数必须始终是using语句中的最后一个。

为了获得均匀的空间x值,请使用伪列0中包含的行号。因此,为了获得所需的情节,请使用

plot 'cr.dat' using 0:2:xticlabel(1) title "cr"

将行号用作x值,将第二列的值用作y值,将第一列中的值用作xtic标签。

如果您希望按升序对值进行排序,则可以选择以下几种方法:

  1. 对数据文件进行排序。
  2. 动态排序数据文件(使用Unix命令行工具sort正常工作:

    plot '< sort cr.dat' using 0:2:xticlabel(1)
    
  3. 使用行号的负值,有效地为您提供反转的x轴:

    plot 'cr.dat' using (-$0):2:xticlabel(1)
    
  4. 后一个命令的结果是

    enter image description here

答案 1 :(得分:0)

使用

set logscale x

linear x轴转换为logarithm x轴,这将在一定程度上规范化间隙。

或者,更改绘图的大小以获得更多空间

set term . . . size 1920, 1080