提问人:Ngoc Anh 提问时间:10/23/2023 最后编辑:theozhNgoc Anh 更新时间:10/24/2023 访问量:43
gnuplot 数据点中的白色背景
White background in gnuplot data points
问:
亲爱的帮手们, 我想在条形图的顶部绘制一个误差线。因此,我使用了“带误差线”选项并将 pointsize 设置为 0.1,以便它们非常小。但是,当我将 pointsize 设置为小于 1 时,会出现如下白色背景:
圆圈应为蓝色或红色,但为白色:
我在 Windows 上使用 gnuplot,我尝试了从 5.4.5 到 5.4.8 的几个版本,但问题仍未解决。
这是我的gnuplot代码:
$data1 << EOD
#Plan_1 Plan2
#50.4/28 50.25
49.8523456 49.49061091 2.49261728 2.474530546 0.005
44.15166667 43.608 2.207583333 2.1804 <0.005
53.68666667 53.492 2.684333333 2.6746 0.005
52.57555556 52.263 2.628777778 2.61315 0.005
45.48722222 45.53 2.274361111 2.2765 0.005
52.87444444 52.539 2.643722222 2.62695 0.005
45.27277778 45.275 2.263638889 2.26375 0.005
50.98 50.384 2.549 2.5192 0.005
EOD
set term wxt 0 enhanced
set encoding utf8
set lmargin 10
set bmargin 5
set tics font 'Arial,16'
set xlabel 'DVH parameters' font 'Arial,16' offset 0,-1
set ylabel 'Dose (Gy)' font 'Arial,16' offset -2,0
width=0.3
set title 'PTV_{45}' font 'Arial,16'
set boxwidth width
set style data histogram
set style fill solid
set style histogram cluster gap 1
set xtic scale 0
set auto x
set key font 'Arial,16'
set yrange [30:75]
set xrange [-1:8]
set xtics ('D_{mean}' 0,'D_{min}' 1,'D_{max}' 2,'D_{5}' 3,'D_{95}' 4,'D_{2}' 5,'D_{98}' 6,'D_{50}' 7)
set bars 2
plot $data1 u ($0-width/2):1 w boxes lc 3 t '50.4/28',\
$data1 u ($0+width/2):2 w boxes lc 7 t '50/25',\
$data1 u ($0-width/2):($1-5):($3) w errorbars pt 7 ps 0.1 lc 8 notitle,\
$data1 u ($0+width/2):2:($4) w errorbars pt 1 ps 0.1 lc 8 notitle,\
$data1 u 0:($1+4):5 w labels rotate by 0 font "Times,10" notitle
我已经尝试了从 5.4.5 到 5.4.8 的几个版本,但问题仍未解决。
答:
正如评论中提到的,这种奇怪/不受欢迎的行为对于 gnuplot>=5.4.4 来说似乎是新的。
有一个简单的解决方法:而不是使用绘图样式,如果需要,还可以使用。检查和以下脚本...这是您的脚本,稍作修改。with errorbars
with vectors
with points
help arrowstyle
help vectors
注意台词:
set style arrow 1 heads size 0.1,90 fixed lc "black"
和
plot ... w vec as 1 ...
脚本:
### errorbar without white background point (gnuplot>=4.5)
reset session
$data1 << EOD
#Plan_1 Plan2
#50.4/28 50.25
49.8523456 49.49061091 2.49261728 2.474530546 0.005 D_{mean}
44.15166667 43.608 2.207583333 2.1804 <0.005 D_{min}
53.68666667 53.492 2.684333333 2.6746 0.005 D_{max}
52.57555556 52.263 2.628777778 2.61315 0.005 D_{5}
45.48722222 45.53 2.274361111 2.2765 0.005 D_{95}
52.87444444 52.539 2.643722222 2.62695 0.005 D_{2}
45.27277778 45.275 2.263638889 2.26375 0.005 D_{98}
50.98 50.384 2.549 2.5192 0.005 D_{50}
EOD
set term wxt 0 enhanced
set encoding utf8
set lmargin 10
set bmargin 5
set tics font 'Arial,16'
set xlabel 'DVH parameters' font 'Arial,16' offset 0,-1
set ylabel 'Dose (Gy)' font 'Arial,16' offset -2,0
width=0.3
set title 'PTV_{45}' font 'Arial,16'
set boxwidth width
set style data histogram
set style fill solid
set style histogram cluster gap 1
set xtic scale 0
set auto x
set key font 'Arial,16'
set yrange [30:75]
set xrange [-1:8]
set bars 2
set key noautotitle
set style arrow 1 heads size 0.1,90 fixed lc "black"
plot $data1 u ($0-width/2):1 w boxes lc 3 t '50.4/28',\
'' u ($0+width/2):2 w boxes lc 7 t '50/25',\
'' u ($0-width/2):($1-$3):(0):($3*2) w vec as 1,\
'' u ($0-width/2):1:3 w p pt 7 ps 0.5 lc "black",\
'' u ($0+width/2):($2-$4):(0):($4*2) w vec as 1,\
'' u ($0+width/2):2:4 w p pt 7 ps 0.5 lc "black",\
'' u 0:($1+$3):5::xtic(6) w labels rotate by 0 offset 0,0.7 font "Times,10"
### end of script
结果:
白色圆圈的大小由 控制。它可以减少到零。这在文档中很难找到,但这里有相关的手册部分:set pointintervalbox
set pointintervalbox 0
帮助 YERRORBARS
(或)样式仅与 2D 数据相关 情节。 就像 ,只是垂直误差 还绘制了条形图。在每个点 (x,y) 上,从 (x,y-ydelta) 到 (x,y+ydelta) 或从 (x,ylow) 到 (x,yhigh),具体取决于 提供了多少个数据列。抽动标记的出现 在条形图的两端由 控制。这 点和误差线之间的间隙由 控制。
yerrorbars
errorbars
yerrorbars
points
set errorbars
set pointintervalbox
帮助设置 PointIntervalBox
线类型的 和 属性是 仅用于情节样式。负值 pointinterval 或 pointnumber,例如 -N,表示在所选之前 点符号集在每个符号后面绘制一个框(实际上是圆圈) 点符号通过填充背景颜色来消空。 该命令控制此半径 空白区域。它是默认半径的乘数,它 等于点大小。
pointinterval
pointnumber
linespoints
set pointintervalbox
评论
($1-5)