gnuplot:xtics未显示在X轴上

时间:2015-04-25 07:51:43

标签: linux graph gnuplot gnu

我试图用X轴上的一些固定值和Y轴上的相应值填充图形。使用我的下面的脚本,X轴上没有标记值,Y轴上的值标记为幂。

  1. 如何在X轴上显示xtics数据(1000,10000,100000,1000000,10000000)?
  2. 如何摆脱Y轴上的力量? (示例:我想在Y轴上使用4000000而不是4x10 ^ 6

    set xrange [0:]
    set output "macs.png"
    set ylabel "Flows/sec"
    set xlabel  "MACS per Switch"
    set grid
    set xtics (1000, 10000, 100000, 1000000, 10000000)
    set style line 2 lt 1 lw 2 pt 1 linecolor 1
    plot "macs.data" using :1 with linespoints linestyle 0 title "Floodlight" // Using ":1" as X-axis data is supplied in xtics
    
  3. 这是我的数据文件:

    # Not Supplying X-axis data here as it is supplied through xtics
    400
    60000
    700000
    800000
    900000
    

    我希望只有一行的填充图形如下所示:enter image description here

1 个答案:

答案 0 :(得分:2)

您为每个点提供x和y值。幸运的是,gnuplot支持一些特殊的列号,如第0列,它是有效数据集的计数器,即这里是忽略注释的行号。它从零开始。

接下来,您的x轴使用对数刻度,所以您也应该这样做。将行号转换为正确的x值的公式为10 (colum_0)+ 3 。在gnuplot中转换为10**($0+3)

以下是代码:

# Logarithmic scale for x axis
set log x


# get rid of scientific formatting of numbers,
# plain format also for large numbers
set format x "%.0f"

# If you don't like the small ticks between the large ones
set mxtics 1

# put the key (legend) outside, right of the plot area, 
# vertically centered (as in your picture)
set key outside right center


# only horizontal grid lines
set grid y   


plot "macs.data" using (10**($0+3)):1 title "foo" with linespoints

结果如下:

enter image description here

<强>替代:

您的方法将数据绘制为像

那样给出数据
0   400
1  60000
2 700000
3 800000
4 900000

在这种情况下,您需要自己标记x轴,正确的语法是

set xtics("1000" 0, "10000" 1, "100000" 2, "1000000" 3, "10000000" 4)

这不会绘制任何自动标签,但它会放置,例如您的字符串10000位于x = 1