如何解决如何仅显示数据集中的值的抽动?
我有一个标准数据集,比如:
1,10
2,15
4,20
8,5
有没有什么简单的方法可以只为数据集中的值显示抽动?
我可以手动设置它们:
set xtics ( 1,2,4,8 );
set ytics ( 5,10,15,20 );
然而,这有两个副作用:
- 我必须手动查找所有值;
- 出于某种原因,它删除了边距(与自动缩放相比),所以我必须手动计算它们(
set offsets graph
与手动设置的 tic 很奇怪)。
是否有任何简单的方法可以显示在没有 set *tics
命令的情况下绘制的相同图,唯一的区别是打印的 tic?
我使用的是 Gnuplot 5.2。
解决方法
您可以从 plot 命令调用 xtic()
和 ytic()
。例如:
set datafile separator comma
set offsets graph 0.1,graph 0.1,graph 0.1
plot '-' using 1:2:xtic(1):ytic(2) pt 7 lc black title ""
1,10
2,15
4,20
8,5
end
,
尝试以下操作。您可以从数据集创建字符串并将其与宏一起使用(请参阅 help macros
)。也许有更简单的方法可以实现相同的结果(我想可能还有一种方法可以将 x 轴设置为 log2 轴,那么您应该自动获得 1,2,4,8,16,32 抽动。)
代码:
### setting special tics semi-automatically
reset session
$Data <<EOD
1,5
EOD
set datafile separator comma
set table $Dummy
plot myXtics=myYtics='' $Data using \
(myXtics = myXtics.($0==0?'':',').strcol(1),\
myYtics = myYtics.($0==0?'':',').strcol(2)) w table
unset table
set offsets 1,1,1
set xtics (@myXtics)
set ytics (@myYtics)
set grid xtics,ytics
plot $Data u 1:2 w p pt 7 notitle
### end of code
结果:
添加:
如果您使用对数 x 轴以 2 为底,您将自动获得抽动,注意:1、2、4、8 是等距的。但是,set offsets
似乎只适用于线性轴(错误?)。见How to get (automatic) offsets in logscale plots?。
代码:
### setting special tics semi-automatically
reset session
$Data <<EOD
1,5
EOD
set datafile separator comma
set logscale x 2
set offsets 1,1 # offsets works on linear y-axis but not on log x axis
set xrange [0.75:12]
set grid xtics,ytics
plot $Data u 1:2 w p pt 7 notitle
### end of code
结果:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。