首页 > 解决方案 > R - ggplot 行和列

问题描述

我正在尝试绘制一个图表,其中一个系列是一列,另一个是带点的线。当我使用下面的代码绘制数据时,它会以我想要的方式绘制。但是,图表中没有图例。有没有办法强制传说出现?

添加show.legend = Tgroup = xxx没有区别。

data <- data.frame(
  A = c(1, 2, 3),
  B = c(1, 2, 3),
  C = c(2, 3, 4)
)

ggplot(data, aes(x = A)) +
  geom_line(aes(y = C)) +
  geom_point(aes(y = C)) +
  geom_col(aes(y = B))

在此处输入图像描述

标签: rggplot2

解决方案


我能够找到一个不是很优雅但适用于我的情况的解决方案。

data.2 <- data.frame(
  A = c(1, 2, 3, 1, 2, 3),
  D = c('B', 'B', 'B', 'C', 'C', 'C'),
  B = c(1, 2, 3, NA, NA, NA),
  C = c(NA, NA, NA, 2, 3, 4)
)

data.2 %>% 
  ggplot(aes(x = A, y = C, col = D, fill = D)) +
  geom_line() +
  geom_point() +
  geom_col(aes(y = B)) +
  scale_color_manual(values = c('black', 'red'), breaks = c('B', 'C')) +
  scale_fill_manual(values = c('grey', 'transparent'), breaks = c('B', 'C'))

在此处输入图像描述


推荐阅读