gnuplot 数据点中的白色背景

White background in gnuplot data points

提问人:Ngoc Anh 提问时间:10/23/2023 最后编辑:theozhNgoc Anh 更新时间:10/24/2023 访问量:43

问:

亲爱的帮手们, 我想在条形图的顶部绘制一个误差线。因此,我使用了“带误差线”选项并将 pointsize 设置为 0.1,以便它们非常小。但是,当我将 pointsize 设置为小于 1 时,会出现如下白色背景:

圆圈应为蓝色或红色,但为白色:

enter image description here

我在 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 透明度 数据点

评论

0赞 theozh 10/23/2023
也许是错别字?我没有看到 gnuplot 5.4.1 的行为,但可以确认 5.4.6 的行为(这很奇怪)。如果 pointsize 为 1,则 gnuplot 似乎添加了一个背景颜色为 pointsize 1 的点<1。我会考虑一个解决方法。($1-5)
0赞 Ngoc Anh 10/23/2023
我投入(1 - 5 美元)是为了更好地查看数据点的背景。感谢您的评论。这很有帮助。我可能会尝试安装 gnuplot 5.2。
0赞 theozh 10/23/2023
检查我的解决方法答案。这也适用于 gnuplot>=5.4.4
0赞 Ngoc Anh 10/23/2023
我在 gnuplot/bugs 中发现这不是一个错误,而是一个有意的改变。要禁用它,我们需要使用以下命令“set pointintervalbox 0”
0赞 theozh 10/23/2023
啊,很高兴知道。当然,这比我的解决方法要简单得多。请把这个放到一个答案中,并接受你自己的答案,表明问题已经得到回答。

答:

0赞 theozh 10/23/2023 #1

正如评论中提到的,这种奇怪/不受欢迎的行为对于 gnuplot>=5.4.4 来说似乎是新的。

有一个简单的解决方法:而不是使用绘图样式,如果需要,还可以使用。检查和以下脚本...这是您的脚本,稍作修改。with errorbarswith vectorswith pointshelp arrowstylehelp 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

结果:

enter image description here

0赞 Ethan 10/24/2023 #2

白色圆圈的大小由 控制。它可以减少到零。这在文档中很难找到,但这里有相关的手册部分:set pointintervalboxset pointintervalbox 0

帮助 YERRORBARS

(或)样式仅与 2D 数据相关 情节。 就像 ,只是垂直误差 还绘制了条形图。在每个点 (x,y) 上,从 (x,y-ydelta) 到 (x,y+ydelta) 或从 (x,ylow) 到 (x,yhigh),具体取决于 提供了多少个数据列。抽动标记的出现 在条形图的两端由 控制。这 点和误差线之间的间隙由 控制。yerrorbarserrorbarsyerrorbarspointsset errorbarsset pointintervalbox

帮助设置 PointIntervalBox

线类型的 和 属性是 仅用于情节样式。负值 pointinterval 或 pointnumber,例如 -N,表示在所选之前 点符号集在每个符号后面绘制一个框(实际上是圆圈) 点符号通过填充背景颜色来消空。 该命令控制此半径 空白区域。它是默认半径的乘数,它 等于点大小。pointintervalpointnumberlinespointsset pointintervalbox