【问题标题】:ggplot2 does not display legendggplot2 不显示图例
【发布时间】:2023-02-17 00:03:24
【问题描述】:

我正在尝试使用 R ggplot 显示带有多个数据点的散点图的图例。我累的是这样的:

p1 <- ggplot()+
  geom_line(data=df2, aes(y = C, x=time), color = "red") + 
  geom_line(data=df2,aes(y = TU, x=time), color="steelblue") +
  geom_line(data=df2,aes(y = TN, x=time), color="purple") +
  geom_line(data=df2,aes(y = CD, x=time), color="green") 
p1 <- p1 + legend(x='top',legend=c('C', 'TU', 'TN', 'CD'), fill=c("red","steelblue","purple","green"))

df2 看起来像:

time C TU TN CD
1     3 5  6  7
5     6 7  8  9
9     8 9  10 3

你可以帮帮我吗?

另外,我试过这个

p1 <- p1 + scale_color_manual(name='Compound Name',
                     breaks=c('C', 'TU', 'TN', 'CD'),
                     values=c('C'='red', 'TU'='steelblue', 'TN'='purple', 'CD'='green'))

它没有显示图例。我究竟做错了什么?谢谢。

【问题讨论】:

  • 我建议您查看几个 ggplot 教程,了解其功能的预期工作方式。它的范例是您通过aes分配视觉编码,例如颜色。您使用长形数据执行此操作,因此您不会多次使用相同的 geom 以使它们出现多次。如果你没有以预期的方式分配颜色,你就不会得到图例

标签: r ggplot2


【解决方案1】:
library(ggplot2)
df2 <- tibble::tribble(
  ~time, ~C, ~TU, ~TN, ~CD,
  1,     3, 5,  6,  7,
  5,     6, 7,  8,  9,
  9,     8, 9,  10, 3
)


ggplot()+
  geom_line(data=df2, aes(y = C, x=time, color="C")) + 
  geom_line(data=df2,aes(y = TU, x=time, color="TU")) +
  geom_line(data=df2,aes(y = TN, x=time, color="TN")) +
  geom_line(data=df2,aes(y = CD, x=time, color="CD")) + 
  scale_fill_manual(values=c("red","green", "purple", "steelblue"))

reprex package (v2.0.1) 创建于 2023-02-16

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多