R 缩放\填充\离散不会更改标签名称

R 缩放\填充\离散不会更改标签名称,r,ggplot2,label,R,Ggplot2,Label,我在尝试使用ggplot更改绘图图例中标签的名称时遇到问题 我来这里是为了阅读一些关于这个主题的教程和这个论坛()中关于同一主题的问题,还有更多。我写这篇文章的原因是因为我无法理解我的ggplot函数是如何使scale\u fill\u离散的()不起作用的,而在其他示例中它确实起作用 我的数据框类似于: x w t 1 0.8972208 A 0 2 0.8312684 A 1 3 0.7504638 A 2 4 0.6563472 A 3 5 0.5764883

我在尝试使用ggplot更改绘图图例中标签的名称时遇到问题

我来这里是为了阅读一些关于这个主题的教程和这个论坛()中关于同一主题的问题,还有更多。我写这篇文章的原因是因为我无法理解我的ggplot函数是如何使scale\u fill\u离散的()不起作用的,而在其他示例中它确实起作用

我的数据框类似于:

           x w t
1  0.8972208 A 0
2  0.8312684 A 1
3  0.7504638 A 2
4  0.6563472 A 3
5  0.5764883 A 4
6  0.5224609 A 5
7  0.8972208 B 0
8  0.8456315 B 1
9  0.7674353 B 2
10 0.6689723 B 3
11 0.6114414 B 4
12 0.5381668 B 5
13 0.8983253 C 0
14 0.7878405 C 1
15 0.6955420 C 2
16 0.6179749 C 3
17 0.5524141 C 4
18 0.4966967 C 5    
据我所知,使用ggplot对图例中的因子进行排序是一项非常困难的任务,这就是它们在数据帧中按字母顺序排序的原因(
因子w
)。然而,真名应该是不同的,比如:“O”、“R”和“N”

我使用的ggplot函数是:

ggplot (data = eso3, aes (x=t, y = x, colour = w, linetype = w, shape= w))
  +geom_line()
  +geom_point()
  +scale_linetype_manual("LEGEND TITLE",values =c("solid","solid","dashed","dashed","dotted","dotted"))
  +scale_colour_manual("LEGEND TITLE",values=c("black","black","darkgray","darkgray","dimgray","dimgray"))
  +scale_shape_manual("LEGEND TITLE",values=c(19,15,19,15,19,15))
  +scale_y_continuous("Y LABEL",limits=c(0.0,1.0))
  +theme(axis.title.y = element_text(angle=0))
  +scale_fill_discrete("LEGEND TITLE",breaks=c("A","B","C"),labels=c("O","R","N"))
  +ggtitle("MAIN TITLE")
  +theme_bw()    

我知道函数缩放填充\u离散应该更改
(“A”、“B”、“C”)
(“O”、“R”、“N”)
。为什么它不起作用?

既然您使用了
颜色
线型
形状
,而不是
填充
,那么您必须将新标签与
缩放xxx\u手册()集成在一起
调用类似于:

ggplot (data = eso3, aes (x=t, y = x, colour = w, linetype = w, shape= w))+
geom_line()+
geom_point()+
scale_linetype_manual("LEGEND TITLE",values =c("solid","solid","dashed","dashed","dotted","dotted"),breaks=c("A", "B", "C"), labels=c("O","R","N"))+
scale_colour_manual("LEGEND TITLE",values=c("black","black","darkgray","darkgray","dimgray","dimgray"),breaks=c("A", "B", "C"), labels=c("O","R","N"))+
scale_shape_manual("LEGEND TITLE",values=c(19,15,19,15,19,15),breaks=c("A", "B", "C"), labels=c("O","R","N"))+
scale_y_continuous("Y LABEL",limits=c(0.0,1.0))+
theme(axis.title.y = element_text(angle=0))+
ggtitle("MAIN TITLE")+
theme_bw()

在ggplot(..)函数中没有使用fill参数,因此不能使用scale\u fill\u discrete()


使用比例\颜色\离散()、比例\线型\离散()或比例\形状\离散()取决于您要更改的图例。我所看到的大多数关于如何更改标签的提及都利用了“比例”\u fill\u discrete,但忽略了仅当您使用了fill参数时才提及这一点。

非常有建设性的回答,非常感谢!它解决了问题:)