删除图例名称

时间:2019-04-25 16:33:05

标签: r ggplot2 legend

我有一个如下数据框:

X       Y      Variable
0.351   4.453  a
0.352   4.423  a
0.353   4.422  a
...     ...    ...
...     ...    ...
...     ...    ...
0.351   5.656  b
0.352   5.431  b
0.353   5.222  b

对于不同的变量依此类推。在示例中,我将使用2个变量来简化它。

我绘制了数据框,我想要一个图例,该图例显示变量名称,但不显示图例标题。

ggplot(data=df, aes(x=df$X, y=df$Y, color=df$Variable))+
  geom_line(size=1)+
  labs(x = "x",
       y = "y") +
  theme_bw()

这给出了一个简单但清晰的图形,并带有图例。 但是,然后我想更改显示的图例中的标签,删除图例标题,并使用scale_color_manual选项更改线条的颜色。 我可以更改颜色,但是由于图例消失了,我无法做其他事情。

ggplot(data=df, aes(x=df$X, y=df$Y, color=df$Variable))+
  geom_line(size=1)+
  labs(x = "x",
       y = "y") +
  scale_color_manual(values=c("green","red")
                     breaks=c("a","b")) +
  theme_bw()

我知道在上一个代码中,图例标题缺少选项。我在做什么错了?

2 个答案:

答案 0 :(得分:1)

这是一个如何更改图例标题和标签的示例。要完全删除标题,您可以设置name = NULL

# Create data frame
df <- read.table(text = "X       Y      Variable
0.351   4.453  a
0.352   4.423  a
0.353   4.422  a
0.351   5.656  b
0.352   5.431  b
0.353   5.222  b", header = TRUE)

# Load libraries
library(ggplot2)

# Plot results
ggplot(data=df, aes(x=df$X, y=df$Y, color=df$Variable))+
  geom_line(size=1)+
  labs(x = "x",
       y = "y") +
  scale_color_manual(values=c("green","red"),
                     breaks=c("a","b"),
                     labels = c("Label one", "Label two"),
                     name = "My Legend Title") +
  theme_bw()

reprex package(v0.2.1)于2019-04-25创建

答案 1 :(得分:1)

您可以使用labs(color="")删除图例标题,因为颜色aes为您的图例提供了名称:

library(ggplot2)
ggplot(data=df, aes(x=df$X, y=df$Y, color=df$Variable))+
  geom_line(size=1)+
  labs(x = "x",
       y = "y",
       color = NULL) +
  theme_bw()

图: your plot without legend name


也在工作:

scale_color_discrete(name = NULL)

有关更多信息,请在此thread