我试图分别为每个单独的箱形图着色,但我正在努力弄清楚如何修改我的 gnuplot 脚本。任何帮助表示赞赏!这是我的代码:
set terminal pngcairo enhanced font 'Arial,12' size 800,800
set output 'quartiles_candlestick.png'
set style data boxplot
set key off # Remove the legend
# Set the color and outline style for boxplots
set style line 1 lc rgb "black" lt 1 lw 2 # Black outline with line type 1 and line width 2
set boxwidth 0.5 # Adjust the width of the boxes
set logscale y
# Set boxplot fill color
set style fill solid 0.5 border lc rgb "black" # Fill with blue and black borders
# Set custom x-axis labels
set xrange [0.5:5.5] # Adjust the range slightly to provide more space around the boxplots
plot 'output_statistics.txt' using 1:3:2:6:5:xticlabels(8) with candlesticks title 'Min-Max Whiskers' whiskerbars, \
'' using 1:4:4:4:4 with candlesticks lt -1 notitle
这是我的数据文件的结构
#x min Q1 median q3 max width label color
1 132.5 151.34 317.48 733.92 1314.00 582.57 ALC2 #440154
2 142.2 201.04 808.40 1485.33 2297.41 1284.29 ALC3 #31688E
3 2562.0 3073.71 4340.40 6080.67 6781.62 3006.96 ALC4 #1F9E89
4 121.3 166.85 400.00 778.06 2949.24 611.21 ALC5 #6CCE59
5 69.4 112.68 125.49 146.99 271.52 34.31 ALC6 #FDE725
我希望在着色方面生成与此类似的图形:
在数据中,您通过
#abcdef
定义颜色,但是,#
是注释的默认字符。所以,你基本上是在注释掉你的颜色。如果您不能或不想更改输入数据中的颜色定义,可能有一种解决方法,但最简单的可能是将颜色定义为十六进制数字,例如0xabcdef
。
另一件事是您的数据分布几乎两个数量级。对于较低的值,您只会看到黑色边框,但看不到填充颜色的框。因此,您可能想要
set logscale y
。
如果勾选
help candlesticks
,则会列出您可以添加颜色列并通过可变颜色使用它,即lc rgb var
。
脚本:
### colored candlesticks plot
reset session
$Data <<EOD
#x min Q1 median Q3 max width label color
1 132.5 151.34 317.48 733.92 1314.00 582.57 ALC2 0x99759f
2 142.2 201.04 808.40 1485.33 2297.41 1284.29 ALC3 0x8eaabe
3 2562.0 3073.71 4340.40 6080.67 6781.62 3006.96 ALC4 0x85c7bc
4 121.3 166.85 400.00 778.06 2949.24 611.21 ALC5 0xace3a5
5 69.4 112.68 125.49 146.99 271.52 34.31 ALC6 0xfbf38e
EOD
set offsets 0.5,0.5,0,0
set boxwidth 0.4
set style fill solid 1.0 border lt -1
set logscale y
set yrange[50:10000]
set key noautotitle
plot $Data u 1:3:2:6:5:9:xticlabels(8) w candlesticks lc rgb var whiskerbars, \
'' u 1:4:4:4:4 w candlesticks lt -1 lc "grey" ti 'Min-Max Whiskers'
### end of script
结果: