ggplot2:无法更改图例的标题

时间:2017-09-14 20:41:59

标签: r ggplot2

我无法使用此数据更改此图表中的图例标题。

df <- structure(list(year = structure(c(1L, 1L, 2L, 2L, 2L, 3L, 3L, 
3L), .Label = c("2015", "2016", "2017"), class = "factor"), Category2 = c("grower", 
"starter", "grower", "layer", "starter", "grower", "layer", "starter"
), per_pound = c(0.2072, 0.382, 0.172, 0.173, 0.3705, 0.178667, 
0.1736, 0.277375)), .Names = c("year", "Category2", "per_pound"
), row.names = c(NA, -8L), vars = "year", drop = TRUE, class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"))

我创建的图表......

library (ggplot2)
p <- ggplot (data=df, aes(x=year, y=per_pound, group=Category2, color=Category2)) + geom_line() + geom_point()
p <- p + scale_fill_discrete(name="TEST")
p

哪个会产生这个...

enter image description here

图例名称应为&#39; TEST&#39;不是&#39;类别2&#39;。数据框中的数据一定有问题,但我还没有找到罪魁祸首。

-cherrytree

2 个答案:

答案 0 :(得分:5)

fill用于内部着色,而color用于轮廓。某些geom(例如geom_bar)可以同时使用colorfill。我们可以使用color更改条形的轮廓,使用fill更改内部颜色。但是,有些geom只会使用color,例如geom_linegeom_point,因为没有内部颜色可以“更改”。

在您的代码中,您使用color=Category2指定了颜色。那是正确的。但是,您将相应地使用scale_color_discrete(name="TEST")。以下代码将起作用。

library (ggplot2)
p <- ggplot (data=df, aes(x=year, y=per_pound, group=Category2, color=Category2)) + geom_line() + geom_point()
p <- p + scale_color_discrete(name="TEST")
p  

答案 1 :(得分:1)

您也可以使用

手动更改图例标题
p + guides(color=guide_legend(title="Whatever You Want"))