使用手动定义的主要抽搐在gnuplot中显示次要抽动网格

时间:2014-04-13 20:15:38

标签: gnuplot

我一直试图绘制以下数据

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,依此类推。

如何做到这一点?

1 个答案:

答案 0 :(得分:2)

为了理解解决方案,需要采取一些措施:

  1. 自动主要抽动:绘制所有次要抽搐

    set yrange [1:100]
    set logscale y
    set mytics 10
    plot x
    

    enter image description here

  2. 手动设置主要抽搐:未抽取次要抽搐

    set yrange [1:100]
    set logscale y
    set ytics ('one' 1, 'ten' 10, 'hundred' 100)
    set mytics 10
    plot x
    

    enter image description here

  3. 使用您自己的文本覆盖主要抽搐(注意add):次要抽搐工作!

    set yrange [1:100]
    set logscale y
    set ytics add ('one' 1, 'ten' 10, 'hundred' 100)
    set mytics 10
    plot x
    

    enter image description here

  4. 因此,在您的情况下,使用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的结果是:

    enter image description here