gnuplot 5 向后兼容性声明不正确,所以现在如何只绘制文件中的一些标签
gnuplot 5 backward compatibility claim is not true so how ploting now only some labels from file
我花了几个小时研究如何在 5.2 中实现 gnuplot 4.6 的旧行为
但是没机会了!所以我觉得有足够的灵感来问我的问题;-D
首先是 gnuplot backward compatibility claim!
数据:
1 3 hm
2 5 oh
3 0 nice
4 2 krr
第一个col是x,第二个是y,第三个是x的标签。
我喜欢在 x 轴上打印所有值而不是所有标签。
如何只打印每三个标签是我的问题。
只要我不打印xtic,一切都可以轻松搞定。
但是……问题开始了。
在 4.6 中,我通过
实现了这一点
file using 1:2 notitle ...
'' using 1:((int(column(1))%3)==1?-1.:0/0):xtic(stringcolumn(3)) notitle
每当 x 值的其余部分为一时,在 yrange 之外绘制一个点,在我的例子中为 -1 并绘制 x 标签,否则产生无效值并且不绘制任何内容。
效果很好,而且很容易修改。期望你有数百分。随和。
现在如何在 GNUPLOT 5.2 中执行此操作???
如果存在有效的坐标对,它绘制任何标签值都没有关系?
很高兴找到解决方案。
Offtopic:我真的很喜欢 gnuplot 程序,即使您有时需要找到诀窍,它也是一个很棒的工具。但是向后的可移植性...... ups ;)
假设我正确理解了您的问题,即使用 xtic()
仅显示每 3 个 xtic,试试这个:
代码:
### only every 3rd xtic
reset session
$Data <<EOD
1 1.2 one
2 2.2 two
3 3.2 three
4 4.2 four
5 5.2 five
6 6.2 six
7 7.2 seven
8 8.2 eight
9 9.2 nine
EOD
plot $Data u 1:2 w p pt 7, \
'' u 1:(NaN):xtic(int()%3==1?strcol(3):"") not
### end of code
结果:
加法:
对于绘图命令,您也可以使用
plot $Data u 1:2 w p pt 7, \
'' u 1:(NaN):xtic(3) every 3 not
然后它也将只显示每第 3 个 xtic 标签,但同时只显示每个第 3 个 xtic 标记。
我花了几个小时研究如何在 5.2 中实现 gnuplot 4.6 的旧行为
但是没机会了!所以我觉得有足够的灵感来问我的问题;-D
首先是 gnuplot backward compatibility claim!
数据:
1 3 hm
2 5 oh
3 0 nice
4 2 krr
第一个col是x,第二个是y,第三个是x的标签。
我喜欢在 x 轴上打印所有值而不是所有标签。
如何只打印每三个标签是我的问题。
只要我不打印xtic,一切都可以轻松搞定。
但是……问题开始了。
在 4.6 中,我通过
实现了这一点file using 1:2 notitle ...
'' using 1:((int(column(1))%3)==1?-1.:0/0):xtic(stringcolumn(3)) notitle
每当 x 值的其余部分为一时,在 yrange 之外绘制一个点,在我的例子中为 -1 并绘制 x 标签,否则产生无效值并且不绘制任何内容。
效果很好,而且很容易修改。期望你有数百分。随和。
现在如何在 GNUPLOT 5.2 中执行此操作???
如果存在有效的坐标对,它绘制任何标签值都没有关系?
很高兴找到解决方案。
Offtopic:我真的很喜欢 gnuplot 程序,即使您有时需要找到诀窍,它也是一个很棒的工具。但是向后的可移植性...... ups ;)
假设我正确理解了您的问题,即使用 xtic()
仅显示每 3 个 xtic,试试这个:
代码:
### only every 3rd xtic
reset session
$Data <<EOD
1 1.2 one
2 2.2 two
3 3.2 three
4 4.2 four
5 5.2 five
6 6.2 six
7 7.2 seven
8 8.2 eight
9 9.2 nine
EOD
plot $Data u 1:2 w p pt 7, \
'' u 1:(NaN):xtic(int()%3==1?strcol(3):"") not
### end of code
结果:
加法:
对于绘图命令,您也可以使用
plot $Data u 1:2 w p pt 7, \
'' u 1:(NaN):xtic(3) every 3 not
然后它也将只显示每第 3 个 xtic 标签,但同时只显示每个第 3 个 xtic 标记。