gpt4 book ai didi

r - 更改复合图例标题

转载 作者:行者123 更新时间:2023-12-04 00:46:03 25 4
gpt4 key购买 nike

如果我有以下数据并使用 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"))

如果我想指定图例的标题,我可以做很多事情,比如

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"))

enter image description here

但是,所有这些选项都会将复合图例分解为单独的映射参数。

如何使用 linetypeshapefill 维护复合图例并更改图例标题?

最佳答案

ggplot2 中,所有具有相同标签的刻度将被分组在一起,因此您需要这样做:

  1. (可选)使用您的标签创建一个变量,例如scale_label
  2. 将相同的标签作为第一个参数传递给每个量表。

例如:

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)

enter image description here

关于r - 更改复合图例标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13140606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com