R 如何叠加两个几何图形?

R 如何叠加两个几何图形?,r,ggplot2,bar-chart,R,Ggplot2,Bar Chart,我试图覆盖从两个单独的data.frames导出的geom_bar中的两个条 dEQ lab perc 1 lmP 55.9 2 lmN 21.8 3 Nt 0.6 4 expG 5.6 5 expD 0.0 6 prbN 11.2 7 prbP 5.0 及 第一个情节是: p <- ggplot(dEQ, aes(lab, perc)) + xlab(xlabel) + ylab(ylabel) + geom_bar(stat="identi

我试图覆盖从两个单独的data.frames导出的
geom_bar
中的两个条

dEQ
   lab perc
1  lmP 55.9
2  lmN 21.8
3   Nt  0.6
4 expG  5.6
5 expD  0.0
6 prbN 11.2
7 prbP  5.0

第一个情节是:

p <- ggplot(dEQ, aes(lab, perc)) + 
     xlab(xlabel) + ylab(ylabel) +
     geom_bar(stat="identity", colour="blue", fill="darkblue")  + 
     geom_text(aes(vecX, vecYEQ+1.5, label=vecYlbEQ), data=dEQ, size=8.5)  + 
     theme_bw() +
     opts(axis.text.x = theme_text(size = 20, face = "bold", colour = "black")) +
     opts(axis.text.y = theme_text(size = 20, face = "bold", colour = "black")) +
     coord_flip() + 
     scale_y_continuous(breaks=c(0,10,20,30,40,50,60),
                        labels=c("0","","20","","40","","60"), 
                        limits = c(0, 64), expand = c(0,0))
print(p)
我想要一个传奇。

这里有一个例子:

p <- ggplot(NULL, aes(lab, perc)) + 
  geom_bar(aes(fill = "dEQ"), data = dEQ, alpha = 0.5) +
  geom_bar(aes(fill = "LMD"), data = LMD, alpha = 0.5)
p

虽然答案并非直接符合OP的要求,但由于该问题与上的许多后续问题相关联,因此通过给出该问题的链接,我提出了一种在条形图中绘制条形图的方法

一个较大条形图内的两条条形图(按组划分)示例

library(tidyverse)
set.seed(40)
df <- data_frame(name = LETTERS[1:10], provision = rnorm(mean = 100, sd = 20, n = 10),
                expenditure = provision - rnorm(mean = 25, sd = 10, n = 10))

df %>% mutate(savings = provision - expenditure) %>%
  pivot_longer(cols = c("expenditure", "savings"), names_to = "Exp", values_to = "val") %>%
  ggplot() + geom_bar(aes(x= name, y = provision/2), stat = "identity", fill = "blue", width = 0.9, alpha = 0.3) +
  geom_col(aes(x=name,y=val, fill = Exp), position ="dodge", width = 0.7) +
  scale_y_continuous(name = "Amount in \u20b9")

库(tidyverse)
种子集(40)
df%变化(节约=准备金-支出)%>%
pivot_更长(cols=c(“支出”、“储蓄”),名称_to=“Exp”,值_to=“val”)%>%
ggplot()+geom_-bar(aes(x=name,y=provision/2),stat=“identity”,fill=“blue”,width=0.9,alpha=0.3)+
几何坐标(aes(x=名称,y=值,填充=经验),position=“dodge”,width=0.7)+
连续缩放(name=“金额单位\u20b9”)

您能将被回避的数据移动到彼此上方吗?就像两个条形图类型之间的负距离一样?@PeterPan您可以使用
position=“stack”
来实现这一点。在使用ggplot命令之前,有没有合理的理由不合并这两个数据集?
p <- ggplot(NULL, aes(lab, perc)) + 
  geom_bar(aes(fill = "dEQ"), data = dEQ, alpha = 0.5) +
  geom_bar(aes(fill = "LMD"), data = LMD, alpha = 0.5)
p
dEQ$name <- "dEQ"
LMD$name <- "LMD"
d <- rbind(dEQ, LMD)
p <- ggplot(d, aes(lab, perc, fill = name)) + geom_bar(position = "dodge")
library(tidyverse)
set.seed(40)
df <- data_frame(name = LETTERS[1:10], provision = rnorm(mean = 100, sd = 20, n = 10),
                expenditure = provision - rnorm(mean = 25, sd = 10, n = 10))

df %>% mutate(savings = provision - expenditure) %>%
  pivot_longer(cols = c("expenditure", "savings"), names_to = "Exp", values_to = "val") %>%
  ggplot() + geom_bar(aes(x= name, y = provision/2), stat = "identity", fill = "blue", width = 0.9, alpha = 0.3) +
  geom_col(aes(x=name,y=val, fill = Exp), position ="dodge", width = 0.7) +
  scale_y_continuous(name = "Amount in \u20b9")