繁体   English   中英

如何在ggplot2图例中添加线到点形状

[英]How to add line to point shapes in ggplot2 legend

我想使用ggplot2创建一个黑白图,其中使用线和点的组合按类别绘制数据。 但是,图例显示点形状,没有线穿过它,除非我为绘图添加颜色。

下面是一些示例数据来说明问题:

## Create example data
set.seed(123)
dat <- data.frame(
    time_period = rep(1:4, each = 3),
    category = rep(LETTERS[1:3], 4),
    y = rnorm(12)
)

这是一个颜色图的示例,因此您可以看到我希望图例的外观:

library(ggplot2)
## Generate plot with color
ggplot(data = dat, mapping = aes(x = time_period, y = y, color = category)) +
    geom_line(aes(group = category)) +
    geom_point(aes(shape = category), size = 2) +
    theme_bw()

在此处输入图片说明

但是,如果我移动到灰度(我需要能够做到),穿过图例中点的线就会消失,我想避免这种情况:

## Generate plot without color
ggplot(data = dat, mapping = aes(x = time_period, y = y)) +
    geom_line(aes(group = category)) +
    geom_point(aes(shape = category), size = 2) +
    theme_bw()

在此处输入图片说明

如何使用灰度图在图例中的点符号中添加一条线?

我会建议这种方法:

#Plot
ggplot(data = dat, mapping = aes(x = time_period, y = y,group = category,shape = category)) +
  geom_line(color='gray',show.legend = T) +
  geom_point(size = 2) +
  theme_bw()

输出:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM