我试图在ggplot的条形图中并排显示频率和累积频率,但我最终得到的是重叠条。
可重复的例子:
data(mtcars)
setDT(mtcars)
data <- mtcars[, .(Total = .N), by = carb][order(carb)][, .(carb, freq = Total/sum(Total))][
, .(carb, freq, cumfreq = cumsum(freq))]
ggplot(data, aes(x = carb)) +
geom_bar(fill = "red", alpha = 0.5, stat = "identity" , aes(y = freq), position = position_dodge()) +
geom_bar(fill = "blue", alpha = 0.5, stat = "identity" , aes(y = cumfreq), position = position_dodge())
您的建议将不胜感激。
答案 0 :(得分:0)
我会改变你正在使用的数据,就像这样(使用reshape2包):
library(reshape2)
new_data = melt(data,id = "carb")
ggplot(data = new_data)+aes(x = carb, y = value, fill = variable)+
geom_bar(alpha = 0.5,stat = "identity", position = position_dodge())+
scale_fill_manual(values = c("red","blue"))
告诉我它是否是你想要的
答案 1 :(得分:0)
这是一个很好的问题!在涉及不同的几何类型时,只需添加图层是很常见的,但我总是不得不重新组织/重塑数据以绘制分组/躲避条形图。尽管如此,我相信你可以使用plotly:https://plot.ly/~luana.marinho/114#plot得到你想要的东西(没有数据争论)。同意,这不是最复杂的解决方案,但它很快,你可以窥探那里的R代码。