[英]Change composite legend title
If I have the following data and plot it using ggplot2
I get:如果我有以下数据并使用
ggplot2
绘制它,我会得到:
a <-c(0.3,0.3,0.3,0.3,0.3)
b <-c(1:5,0.9,0.9,0.9,0.9,0.9)
c <-c(1:5,0.5,0.5,0.5,0.5,0.5)
z <-rep(1:5,5)
df <- data.frame(y=c(a,b,c),x=c(z),line=c(rep("1",5),
rep("2",5),rep("3",5),rep("2",5),rep("3",5)))
library(ggplot2)
a <- ggplot(df,aes(x=x,y=y,fill=line,shape=line,group=line)) +
geom_line(aes(linetype=line),size=1) +
scale_linetype_manual(values=c("dashed","solid", "dotdash")) +
geom_point(size=3) + scale_shape_manual(values=c(25,23,21,25,23)) +
scale_fill_manual(values=c("red", "blue", "yellow","red", "blue"))
If I want to specify the title of the legend I can do a number of things like如果我想指定图例的标题,我可以做很多事情,比如
a + labs(shape = "MY TITLE HERE") # or
a <- ggplot(df,aes(x=x,y=y,fill=line,shape=line,group=line)) +
geom_line(aes(linetype=line),size=1) +
scale_linetype_manual(values=c("dashed","solid", "dotdash")) +
geom_point(size=3) + scale_shape_manual(values=c(25,23,21,25,23),name="MY
TITLE HERE") +
scale_fill_manual(values=c("red", "blue", "yellow","red", "blue"))
However, all of these options break the composite legend up into their separate mapping paramters.但是,所有这些选项都将复合图例分解为它们单独的映射参数。
How do I maintain the composite legend with linetype
, shape
and fill
and change the legend title?如何使用
linetype
、 shape
和fill
维护复合图例并更改图例标题?
In ggplot2
all scales with the same label will be grouped together, so you need to do this:在
ggplot2
所有具有相同标签的比例都将组合在一起,因此您需要这样做:
scale_label
scale_label
For example:例如:
scale_label <- "My custom title"
a <- ggplot(df,aes(x=x,y=y,fill=line,shape=line,group=line)) +
geom_line(aes(linetype=line),size=1) +
scale_linetype_manual(scale_label, values=c("dashed","solid", "dotdash")) +
geom_point(size=3) +
scale_shape_manual(scale_label, values=c(25,23,21,25,23)) +
scale_fill_manual(scale_label, values=c("red", "blue", "yellow","red", "blue"))
#scale_shape("Title")
print(a)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.