我试图用X轴上的一些固定值和Y轴上的相应值填充图形。使用我的下面的脚本,X轴上没有标记值,Y轴上的值标记为幂。
如何摆脱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
这是我的数据文件:
# Not Supplying X-axis data here as it is supplied through xtics
400
60000
700000
800000
900000
我希望只有一行的填充图形如下所示:
答案 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
结果如下:
<强>替代:强>
您的方法将数据绘制为像
那样给出数据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