【发布时间】:2021-11-08 16:56:07
【问题描述】:
我创建了一个函数,其中除其他外,我绘制了以下类型的图。
条数取决于我选择的分位数。为了更容易阅读,我更喜欢将分位数留在 x 轴上。尽管如此,我想添加第二个图例来显示每个分位数的间隔。类似的东西
"1 : (17.5,28.5]" “2:(28.5,31]” ... “不适用:不适用”
我可以很容易地创建标签,我只是不知道如何使用它们来创建图例。
labels <- c()
for(c in 1:ntiles){
labels <- cbind(labels, paste(dataset_1$Quantile_rank[c],": ", dataset_1$Quantile[c],sep=" "))
}
谢谢
编辑:
如果我添加一些示例数据和我编写的代码,那可能会更容易。
数据:
分位数 |分位数排名 |事件率 | EventRate_LowCI90 | EventRate_HighCI90
不适用 |不适用 | 0.2857143 | 0.09986631 | 0.5905234
(32.1,39.6] | 1 | 0.5135135 | 0.38248270 | 0.6427128
(39.6,41.2] | 2 | 0.4736842 | 0.34704006 | 0.6038073
代码是
ggplot(dataset_1, aes(x=as.factor(Quantile_rank), y=EventRate)) +
geom_bar(aes(fill=EventRate), stat="identity") +
scale_fill_gradient(low = "green", high = "red") +
geom_text(aes(label=round(EventRate, digits=3)), vjust=1.6, color="darkblue", size=3.5) +
geom_errorbar(aes(ymin=EventRate_LowCI90, ymax=EventRate_HighCI90), width=.2,
position=position_dodge(.9)) +
labs(title = paste("Event rate for variable",var, sep=" "),
subtitle = "Plot of event rates per quantile",
caption = paste("Number of quantiles:", ntiles, sep=" "),
x="Bin",
y = "Event Rate") +
theme(
plot.title = element_text(color = "black", size = 12, face = "bold"),
plot.subtitle = element_text(color = "blue"),
plot.caption = element_text(color = "blue", face = "italic")
)
我希望将分位数值显示为第二个图例(作为一列,使用上面的标签)。
【问题讨论】:
-
你不能用
scale_x_discrete(labels = paste0(bin_number, "\n", labels)吗? -
这不是我想做的。这样做,我将替换 x 轴标签。而不是看到分位数等级,我会看到间隔。我想查看 x 轴上的分位数排名,原因有两个:首先,如果我使用间隔,则无法阅读,因为它们太宽(标签只是混合在一起);其次,使用分位数等级更容易解释。我想将间隔值视为事件率旁边的第二个图例:与分位数一样多的行,显示间隔的值
-
请根据stackoverflow.com/questions/5963269/…向我们提供示例数据,以便我们重现您的情节。
-
刚刚添加。前三行/分位数