我一直试图绘制以下数据
1, 2050
2, 21246
3, 208557
6, 20971520
10, 306184192
12, 1.75922E+14
使用gnuplot,使用以下ytics。
set ytics ( "1 kb" 1000, \
"10 kb" 10000, \
"100 kb" 100000, \
"1 mb" 1000000, \
"10 mb" 10000000, \
"100 mb" 100000000, \
"1 gb" 1000000000, \
"10 gb" 10000000000.0, \
"100 gb" 100000000000.0, \
"1 tb" 1000000000000.0, \
"10 tb" 10000000000000.0, \
"100 tb" 100000000000000.0, \
"1 pb" 1000000000000000.0, \
"10 pb" 10000000000000000.0 )
我无法让gnuplot在此图表上显示次要网格。
由于我希望y轴为对数,因此最好显示次要抽搐。
在1000到10000之间,我想要每1000个次要抽搐。从10000到100000,我希望它是1e4,依此类推。
如何做到这一点?
答案 0 :(得分:2)
为了理解解决方案,需要采取一些措施:
自动主要抽动:绘制所有次要抽搐
set yrange [1:100]
set logscale y
set mytics 10
plot x
手动设置主要抽搐:未抽取次要抽搐
set yrange [1:100]
set logscale y
set ytics ('one' 1, 'ten' 10, 'hundred' 100)
set mytics 10
plot x
使用您自己的文本覆盖主要抽搐(注意add
):次要抽搐工作!
set yrange [1:100]
set logscale y
set ytics add ('one' 1, 'ten' 10, 'hundred' 100)
set mytics 10
plot x
因此,在您的情况下,使用set ytics add ...
和set mytics 10
就足够了。您还必须确保每十年(set ytics 10
)都有一个主要抽搐,并且还会为那么多主要抽搐手动设置yrange:
set yrange [1e3:1e16]
set ytics 10
set mytics 10
set ytics add ( "1 kb" 1000, \
"10 kb" 10000, \
"100 kb" 100000,\
"1 mb" 1000000, \
"10 mb" 10000000,\
"100 mb" 100000000,\
"1 gb" 1000000000, \
"10 gb" 10000000000.0,\
"100 gb" 100000000000.0,\
"1 tb" 1000000000000.0, \
"10 tb" 10000000000000.0, \
"100 tb" 100000000000000.0, \
"1 pb" 1000000000000000.0, \
"10 pb" 10000000000000000.0 )
set logscale y
plot 'file.txt'
4.6.4的结果是: