ggplot2:显示 x 轴值的附加特定图例
Posted
技术标签:
【中文标题】ggplot2:显示 x 轴值的附加特定图例【英文标题】:ggplot2: additional specific legend to show x-axis values 【发布时间】: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 轴上的分位数排名,原因有两个:首先,如果我使用间隔,则无法阅读,因为它们太宽(标签只是混合在一起);其次,使用分位数等级更容易解释。我想将间隔值视为事件率旁边的第二个图例:与分位数一样多的行,显示间隔的值
请根据***.com/questions/5963269/…向我们提供示例数据,以便我们重现您的情节。
刚刚添加。前三行/分位数
【参考方案1】:
您可以计算新列中的分位数并将其用于您的 x 轴,如下所示:
library(tidyverse)
iris %>%
arrange(Sepal.Length) %>%
mutate(quantile = row_number() / n()) %>%
ggplot(aes(quantile, Sepal.Length, fill = Sepal.Length)) +
geom_bar(stat = "identity") +
scale_fill_binned()
由reprex package (v2.0.1) 于 2021-09-13 创建
【讨论】:
不确定我明白你的想法。我已经计算了分位数等级,这就是我用来绘制情节的方法。我编辑我的问题以显示数据的外观和代码以上是关于ggplot2:显示 x 轴值的附加特定图例的主要内容,如果未能解决你的问题,请参考以下文章