如何使用ggplot2在直方图上添加多个vlan
Posted
技术标签:
【中文标题】如何使用ggplot2在直方图上添加多个vlan【英文标题】:how to add multiple vline on an histogram using ggplot2 【发布时间】:2019-06-06 11:25:20 【问题描述】:我绘制了一个直方图显示Histogram 我想在分配不平衡的概率总和为 50%、80% 和 90% 时添加垂直线。
我已经构建了直方图,但无法添加上述垂直线。
pl <- ggplot() +
geom_line(data = data.frame(power1, abs(t-c)), aes(x = abs(t-c), y = power1, color = "power"), size = 1) +
scale_y_continuous(labels = percent_format(), sec.axis = sec_axis(~.*.3, labels = percent_format(), name = "Probability of allocation imbalance")) +
geom_point(data = data.frame(power1, abs(t-c)), aes(x = abs(t-c), y = power1)) +
geom_histogram(data = Simple_Rand_simulation, aes(x = Imbalance_all, y = ..density..*3), color = "blue",
binwidth = density(Simple_Rand_simulation$Imbalance_all)$bw) +
labs(y = "Probability of power", x = "Allocation imbalance", colour = "Parameter") +
theme(legend.position = c(0.8, 0.9))
pl
当分配不平衡的概率总和为 50%、80% 和 90% 时,我期望垂直线
【问题讨论】:
请阅读How to make a great R reproducible example 【参考方案1】:您可能只需要使用geom_vline()
。如果您在 0.5、0.8 和 0.9 处需要它们,则为:
pl +
geom_vline(xintercept = .5) +
geom_vline(xintercept = .8) +
geom_vline(xintercept = .9)
当然你可以根据累积概率的计算对这些值进行编码。
【讨论】:
以上是关于如何使用ggplot2在直方图上添加多个vlan的主要内容,如果未能解决你的问题,请参考以下文章
R语言ggplot2可视化:ggplot2可视化直方图(histogram)并在直方图的顶部外侧(top upper)或者直方图内部添加数值标签
R语言ggplot2可视化:可视化堆叠的直方图在bin中的每个分组部分添加数值标签使用position_stack函数设置
R语言使用ggplot2包使用geom_density()函数绘制分组密度图(添加直方图分组颜色配置)实战(density plot)