0

我有一个有 2 行 3 列的数据框。我希望能够绘制所有三列,它可能在 geom_col 或 geom_bar 图表中最有意义。两个图的 x 轴将保持不变。

数据框有 a1、b1、b2 列

我使用此模板创建了一个图表。希望这些细节对您有所帮助。

Datafame %>% 
  ggplot(aes(x = a1, y = b1, fill = b1)) +
geom_col(position = "dodge", show.legend = FALSE) +
  theme(axis.text.x = element_text(angle = 90)) +
geom_text(aes(label = b1), hjust = -.5, vjust = -.5, size = 3.5) +
  expand_limits(x = 2, y = .35) +
  coord_flip()
4

1 回答 1

1

如果您将单独的“aes()”美学添加到不同的 geoms 中,则可以使用 ggplot 来完成。

library(ggplot2)

df<-data.frame(a1 = c(1:10), b1 = rnorm(10,5), b2= rnorm(10, 3), b3= rnorm(10, 1))

ggplot(df)+
  geom_line(aes(x = a1,  y = b1 ))+
  geom_point(aes(x = a1, y = b2, color = "red" ))+ 
  geom_col(aes(x = a1, y = b3 ))

查看一个 X 轴 (x = a1) 下的三个不同几何图形:

在此处输入图像描述

添加 Dave2e 的有价值的评论

如果您想拥有多个 geom_cols ,您必须先将数据转换为更长的格式。

library(tidyr)
df %>% pivot_longer(b1:b4) %>% ggplot() +
  geom_col(aes(x= a1, y=value, fill= name ), position = "dodge")

在此处输入图像描述

于 2020-04-22T08:28:24.103 回答