我正在尝试创建一个直方图,其上覆盖有垂直线。其中一条垂直线显示目标,其余显示百分位数。我希望代表目标的线与其他线不同。
我有数据框中各行的数据:
lines
qntls lbs heights lts lsz
1 29.00 p5=29 32.2400 dashed 0.1
2 45.25 p25=45 33.5296 dashed 0.1
3 79.00 p50=79 30.9504 dashed 0.1
4 128.00 p75=128 32.2400 dashed 0.1
5 249.25 p95=249 33.5296 dashed 0.1
6 120.00 Target=120 30.9504 solid 0.2
然后我使用lines数据框创建 geom_vline 和 geom_label 对象:
ggplot() +
geom_histogram(
data = h,
mapping = aes(
x = DAYSTODECISION
),
breaks = brks,
color = clr,
fill = f
) +
geom_vline(
data = lines,
mapping = aes(
xintercept = qntls,
color = lbs,
linetype = lts,
size = lsz
),
show.legend = FALSE
) +
geom_label(
data = lines,
mapping = aes(
x = qntls,
y = heights,
label = lbs,
hjust = 0 # Label starts on line and extends right
)
) +
ggtitle(title) +
labs(
x = xlab,
y = ylab
) +
theme_classic()
我得到这个结果:
我希望目标线是实线,所有其他线都是虚线。由于某种原因,与行数据框相比,图表中的情况相反。此外,我希望目标线的厚度是其他线的两倍,但事实并非如此。
任何帮助将非常感激!