gnuplot:字符串值xticlabel&调整fontsize

时间:2018-03-12 16:36:13

标签: gnuplot

我有数据我希望以直方图样式绘制,并使用"累积"曲线在上面。我有以下问题:

我的数据包含一列含有类别("放电")和一列含有属于相应类别的值("概率")。 category-column的最后一个值是"> 100"总结了排放量大于上一个数值的所有发电厂(" 100立方公尺/秒和#34;)。我没有找到使用命令plot 'datafile.dat' using 1:2 with boxes ...绘制最后一个类别和相应值的解决方案,因为(我假设)在这种情况下,只读取x-ticlabels的数值,因此缺少最后一个类别。如果

我使用此命令绘制它plot 'datafile.dat' using 2:xtics(1) with boxes ...我得到了最后一个类别"> 100"画得很好。

但是:如果我使用后一个命令,x轴标签会以正常的字体大小显示。即使我的代码中有set format x '\footnotesize \%10.0f'行。

我已经阅读了plot命令行中的显式标签,这些标签覆盖了之前设置但无法使其适应我的代码的格式样式。 Changing ytic font size in gnuplot epslatex (multiplot)

你知道怎么做吗?

Excel截图可视化我想要实现的目标

Excel screenshot to visualize what I want to achieve

'datafile.dat'
discharge probability cumulated
10 20 20% 
20 10 10%
30 5 5%
40 6 6%
50 4 4%
60 12 12%
70 8 8%
80 15 15%
90 20 20%
100 6 6%
>100 4 4%`

[terminal=epslatex,terminaloptions={size 15cm, 8cm font ",10"}]
set xrange [*:*]
set yrange [0:20]
set y2range [0:100]
set xlabel 'Discharge$' offset 0,-1
set ylabel 'No. of power plants' offset 10.5
set y2label 'Cumulated probability' offset -10
set format xy '$\%g$'
set format x '\footnotesize \%10.0f'
set format y '\footnotesize \%10.0f'
set format y2 '\footnotesize \%10.0f'
set xtics rotate by 45 center offset 0,-1
set style fill pattern border -1
set boxwidth 0.3 relative
set style line 1 lt 1 lc rgb 'black' lw 2 pt 6 ps 1 dt 2
plot 'datafile.dat' using 1:2 with boxes axes x1y1 fs pattern 6 lc black notitle, \
'datafile.dat' using 1:3 with linespoints axes x1y2 ls 1 notitle

1 个答案:

答案 0 :(得分:1)

我对你的数据文件感到困惑;第三列中的数字似乎不是累积的,并且不加起来为100%。这是一个只使用文件前两列的解决方案:

set term epslatex standalone header "\\usepackage[T1]{fontenc}"
set output 'test.tex'

stats "datafile.dat" using 2
total = STATS_sum

set xlabel "Discharge" offset 0, 1.5
set xtics rotate

set ylabel "No. of power plants"
set ytics nomirror
set yrange [0:*]

set y2label "Cumulative probability"
set y2tics
set y2range [0:]

set boxwidth 0.3 relative
set style line 1 lt 1 lc rgb 'black' lw 2 pt 6 ps 1 dt 2

plot \
'datafile.dat' using 2:xtic("\\footnotesize " . stringcolumn(1)) with boxes axes x1y1 fs pattern 6 lc black notitle, \
'datafile.dat' using ($2/total) smooth cumulative with linespoints axes x1y2 ls 1 notitle

set output

enter image description here 诀窍是在\footnotesize命令中的每个标签前面添加latex命令using。它还首先计算发电厂的总数,以便它可以计算概率,并使用smooth cumulative选项计算累积值。