我希望能绘制四条线,图例标签为“AND”,颜色由“Color_Group”列中的唯一值决定,线型由“Line_Type_Group”决定。这是用于创建数据框架和数据框架本身所需的代码。
主要的“Group”列是将颜色和线型列粘贴在一起的结果,它代表每条线的ID。为了获得一个图例,我最初将颜色和线型属性映射到这个“Group”列。下面是我希望绘制的图形。
所需图形:
尝试:
为了简单起见,我重新创建了数据框以包括具有字面颜色和线型值的列。
data <- data.frame("x"=c(1,2,1,2,1,2,1,2),
"y"=1:8,
"Color_Group"=c("A","A","A","A","B","B","C","C"),
"Line_Type_Group"=c(1,1,2,2,2,2,1,1),
"Group"=c("A1","A1","A2","A2","B2","B2","C1","C1"),
stringsAsFactors=F)
> data
x y Color_Group Line_Type_Group Group
1 1 A 1 A1
2 2 A 1 A1
1 3 A 2 A2
2 4 A 2 A2
1 5 B 2 B2
2 6 B 2 B2
1 7 C 1 C1
2 8 C 1 C1
主要的“Group”列是将颜色和线型列粘贴在一起的结果,它代表每条线的ID。为了获得一个图例,我最初将颜色和线型属性映射到这个“Group”列。下面是我希望绘制的图形。
所需图形:
![enter image description here](https://istack.dev59.com/TPQVO.webp)
data <- data.frame("x"=c(1,2,1,2,1,2,1,2),
"y"=1:8,"Color_Group"=c("A","A","A","A","B","B","C","C"),
"Color"=c(rep("red",4),"blue","blue","green","green"),
"Line_Type_Group"=c(1,1,2,2,2,2,1,1),
"Line_Type"=c("solid","solid","dashed","dashed","dashed","dashed","solid","solid"),
"Group"=c("A1","A1","A2","A2","B2","B2","C1","C1"),
stringsAsFactors = F)
> data
x y Color_Group Color Line_Type_Group Line_Type Group
1 1 A red 1 solid A1
2 2 A red 1 solid A1
1 3 A red 2 dashed A2
2 4 A red 2 dashed A2
1 5 B blue 2 dashed B2
2 6 B blue 2 dashed B2
1 7 C green 1 solid C1
2 8 C green 1 solid C1
line_type_group <- data$Line_Type
color_group <- data$Color
names(line_type_group) <- data$Group
names(color_group) <- data$Group
labels <- data$Color_Group
names(labels) <- data$Group
#Both attempts at setting labels variable yields plot below
#labels <- c("A","A","B","C")
g <- ggplot(data,aes(x=x,y=y,colour=Group,linetype=Group))+geom_line()
g + scale_colour_manual(name="Legend",values=color_group,labels=labels) +
scale_linetype_manual(name="Legend",values =line_type_group,labels=labels)