Barplot与ggplot2

时间:2016-11-28 15:10:40

标签: r plot bar-chart

我想绘制一个条形图,显示每个峰值的工业1和工业2的条形

library(ggplot2)
peaks=c(-3:3)
industry1=c(0.05,0.1,0.2,0.3,0.2,0.1,0.05)
data1=data.frame(peaks,industry1)
industry2=c(0.2,0.15,0.12,0.06,0.12,0.15,0.2)
data2=data.frame(peaks,industry2)
ggplot(data=data1,aes(x=peaks,y=industry1,fill=industry1) + geom_bar(stat="identity", position="stack")
gg=g+geom_bar(data=data2,aes(x=peaks,y=industry2,col="blue",show_guide=TRUE))

如果我运行它会说它不起作用

3 个答案:

答案 0 :(得分:0)

library(ggplot2)
peaks=c(-3:3)
industry1=c(0.05,0.1,0.2,0.3,0.2,0.1,0.05)
data1=data.frame(peaks,industry1)
industry2=c(0.2,0.15,0.12,0.06,0.12,0.15,0.2)
data2=data.frame(peaks,industry2)
gg = ggplot(data=data1,aes(x=peaks,y=industry1,fill=industry1)) + geom_bar(stat="identity", position="stack")
gg

调用ggplot()的语法错误

答案 1 :(得分:0)

你是说这个意思吗?否则请提供您要绘制的示例图像。

library(ggplot2)
peaks <- c(-3:3)
industry1 <- c(0.05,0.1,0.2,0.3,0.2,0.1,0.05)
industry2 <- c(0.2,0.15,0.12,0.06,0.12,0.15,0.2)
dat <- rbind(data.frame(peaks, industry = industry1, ind = "industry1"),
             data.frame(peaks, industry = industry2, ind = "industry2"))
ggplot(dat, aes(peaks, industry, fill = ind)) + 
  geom_bar(stat = "identity", position = "dodge")

答案 2 :(得分:0)

您可能正在寻找两个行业的合并数据框架。

mrg <- merge(data1, data2, by="peaks")
mrgmelt <- reshape2::melt(mrg, id="peaks")
ggplot(mrgmelt, aes(peaks, value, fill=variable)) +
  geom_bar(position="stack", stat="identity")

enter image description here