我正在尝试使用
filledcurves
和 gnuplot
绘制一个包含分布平均值及其标准差的图形。我通过将 terminal
设置为 pdf
来获得我的数字。但是,当我的分布点不属于 y 轴的显示范围时,我注意到曲线的斜率是错误的。更令人惊讶的是,当我首先使用 qt 绘制结果,然后手动将我的图形导出到pdf
时,我确实得到了正确的结果。
这是我的最小工作示例:
reset session
set terminal pdf
set output "~/MWE_results.pdf"
set yr[-100 : 100]
$Data <<EOD
40 0.000011 -0.002104 0.002126
20 0.240582 -4.877879 5.359043
10 0.926508 -9.378468 11.231484
5 4.794549 -19.298995 28.888093
2.5 84.993925 -6679.709571 6849.697422
1.25 6.220374 -3980.189531 3992.630280
EOD
set style fill transparent solid 0.1
plot $Data u 1:2 w lp pt 7 lc rgb "black" ti "Mean value of my distribution", \
$Data u 1:3:4 w filledcurves lc rgb "red" ti "Std devation"
unset output
unset term
这段代码给了我以下结果(我圈出了有问题的斜率):
虽然我用 qt 绘制结果然后导出为 pdf 时得到的 pdf 文件如下(并且与我的数据一致):
有人知道会发生什么吗?
提前感谢您的帮助
正如我在评论中提到的,这是一种非常奇怪的行为。我想说这是一个
terminal pdfcairo
特有的错误。
在您的特殊情况下,填充的上边框和下边框始终分别高于和低于 y=0。 因此,适用于您的情况以及 gnuplot 5.4.5 和 5.5.0 以及
term pdfcairo
的解决方法如下:分别将上下边框填充为 y=0。结果将类似于您的第二个(预期)图表。也许有更好的解决方法。
plot $Data u 1:2 w lp pt 7 lc rgb "black" ti "Mean value of my distribution", \
$Data u 1:3 w filledcurves y=0 lc rgb "red" ti "Std devation", \
$Data u 1:4 w filledcurves y=0 lc rgb "red" notitle