gnuplot 5向后兼容性声明不正确,所以现在如何从文件中仅绘制一些标签

gnuplot 5向后兼容性声明不正确,所以现在如何从文件中仅绘制一些标签,plot,gnuplot,Plot,Gnuplot,我花了数小时研究如何实现5.2中gnuplot 4.6中的旧行为 但是没有机会!所以我觉得有足够的灵感去问我的问题-D 第一个 数据: 第一列是x,第二列是y,第三列是x的标签 我喜欢打印x轴上的所有值,但不是所有标签 如何只打印第三个标签是我的问题 只要我不打印xtic,一切都可以轻松完成 但是。。。问题开始出现了 在4.6中,我通过 file using 1:2 notitle ... '' using 1:((int(column(1))%3)==1?-1.:0/0):xtic(stri

我花了数小时研究如何实现5.2中gnuplot 4.6中的旧行为

但是没有机会!所以我觉得有足够的灵感去问我的问题-D

第一个

数据:

第一列是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值的其余部分为1时,在Y范围外绘制一个点,在我的例子中为-1并绘制x标签,否则生成无效值,并且不绘制任何内容

工作非常出色,易于修改。希望你有几百分。容易相处

现在如何在GNUPLOT 5.2中实现这一点

如果存在有效的坐标对,它将打印任何标签值

很高兴能解决这个问题


Offtopic:我真的很喜欢gnuplot程序,它是一个很棒的工具,即使有时你需要找到窍门。但是向后的可移植性。。。ups;)

假设我正确理解了您的问题,即使用
xtic()
仅每三次显示一次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($1)%3==1?strcol(3):"") not
### end of code 

然后它也将只显示每3个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($1)%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