zoukankan      html  css  js  c++  java
  • gnuplotx轴的logscale显示

    假设数据是这样子的:

    2    10
    4    20
    8    30
    16    40
    32    50
    64    60
    128    70
    256    80
    512    90
    1024    100

    gnuplot脚本如下:

     1 set terminal postscript eps color enhanced
     2 set log x 2
     3 set log y 10
     4 set format x '2^{%L}'
     5 set yrange[10:120]
     6 set ytics(10,50,100,120)
     7 set format y '%2.1t*10^{%L}'
     8 set output 'test.eps'
     9 set ylabel 'value' offset 2.0
    10 set xlabel 'param' offset 0, 0
    11 plot 'test.txt' using 1:2 with lp lw 4 ps 1.9 lt 1 pt 4 lc rgb 'red' title 'test'; 
    12 set output

    using 1:2 就是将第一列作为x轴,第二列作为y轴。注意,如果用using 2:xticlabels(1) 的话,只是将第一列当作label(文本类型),再设置它的logscale就会出问题。

    现在要把第一列以logscale (base 2)显示,也就是最终是以幂的形式,并且等距显示,使用:

    set log x 2 将x轴设成base 2的logscale。

    set format x '2^{%L}' 指定x轴的显示方式。^需要enhanced text mode,因此需要

    set terminal postscript eps color enhanced

    正常来说,如果以base 10的log scale显示的话,是会以1,10,100...的刻度显示的,但是有时候我们希望是1*10-1,1.5*10-1这种显示。这时可以这么做:

    1 set yrange[10:120]
    2 set ytics(10,50,100,120)
    3 set format y '%2.1t*10^{%L}'

    注意顺序,先设range,再设tics,再设format。

    最终结果如下:

  • 相关阅读:
    Java web ch02_5
    Java web ch02_4
    Java web ch02_3
    Java web ch02_9
    myeclipse和eclipse的区别以及优越性
    新的学年,迎来新的活力!
    Javaweb中的Tomcat服务器(简单了解)
    一切都是对象
    java中被隐藏的具体实现
    SSL与TLS的区别以及介绍
  • 原文地址:https://www.cnblogs.com/linyx/p/3685448.html
Copyright © 2011-2022 走看看