在R中使用ggplot 2为多层打印创建自定义标签

在R中使用ggplot 2为多层打印创建自定义标签,r,ggplot2,legend,R,Ggplot2,Legend,我有这个阴谋 library(dplyr) library(ggplot2) indexYear <- as.numeric(2000:2010) lDLatIndex <- rep.int(4,11) LDLoneYear <- c(rep.int(3,5), rep.int(2,6)) hba1catIndex <- c(rep.int(8,6), rep.int(7.5,5)) hba1coneYear <- rep.int(7,11) LDLef

我有这个阴谋

library(dplyr)
library(ggplot2)


indexYear <- as.numeric(2000:2010)
lDLatIndex <- rep.int(4,11) 
LDLoneYear <- c(rep.int(3,5), rep.int(2,6))  
hba1catIndex <- c(rep.int(8,6), rep.int(7.5,5))
hba1coneYear <- rep.int(7,11)

LDLeffect <- data.frame(indexYear, lDLatIndex, hba1catIndex, hba1coneYear)
LDLeffect %>% 
  ggplot(., aes(x = indexYear))+
  geom_line(aes(y = lDLatIndex, colour=rgb(237/255, 115/255,116/255)), linetype = "solid" , size = 2)+
  theme_classic()+
  theme(legend.position = "bottom")+
  ylab("mean LDL cholesterol (mmol/l)                           ")+
  xlab("Calendar year")+
  theme(axis.title = element_text(size = 17, face="bold"), axis.text = element_text(size = 17, face = "bold"))+
  scale_x_continuous(breaks = seq(2000,2015, by=1),labels = c(2000,rep("",4),2005,rep("",4), 2010, rep("",4),2015))+
  scale_y_continuous(sec.axis = sec_axis(~(.-2.15)*10.929, name = "mean HbA1c (%)                                "))+
  geom_line(aes(y = LDLoneYear, colour=rgb(237/255, 115/255,116/255)), linetype = "dashed" , size = 2)+
  geom_line(aes(y = hba1coneYear, colour=rgb(152/255, 201/255,139/255)), linetype = "twodash" , size = 2)+
  geom_line(aes(y = hba1catIndex, colour=rgb(152/255, 201/255,139/255)), linetype = "F1" , size = 2)
库(dplyr)
图书馆(GG2)

指数下面的建议会走向正确的方向吗?要点是:使用Reforme2中的“melt”将数据转换为友好的图形。通过
scale\u linetype\u manual
scale\u color\u manual
我明确提供了颜色和线型

library(dplyr)
library(ggplot2)
library(reshape2) ## for "melt"

indexYear <- as.numeric(2000:2010)
lDLatIndex <- rep.int(4,11) 
LDLoneYear <- c(rep.int(3,5), rep.int(2,6))  
hba1catIndex <- c(rep.int(8,6), rep.int(7.5,5))
hba1coneYear <- rep.int(7,11)

LDLeffect <- data.frame(indexYear, lDLatIndex, hba1catIndex, hba1coneYear, LDLoneYear)

melted_df <- melt(LDLeffect, id.vars="indexYear", measure.vars=c("lDLatIndex", "hba1catIndex", "hba1coneYear", "LDLoneYear"))

ggplot(melted_df, aes(x=indexYear, value, colour=variable)) + 
  geom_line(aes(linetype=variable), size = 2) + 
  scale_linetype_manual(values=c("F1", "twodash", "solid", "dashed")) +
  scale_colour_manual(values=c(rgb(237/255, 115/255,116/255), rgb(237/255, 115/255,116/255), rgb(152/255, 201/255,139/255), rgb(152/255, 201/255,139/255))) + 
  theme_classic() + 
  theme(legend.position = "bottom")+
  ylab("mean LDL cholesterol (mmol/l)")+
  xlab("Calendar year")+
  theme(axis.title = element_text(size = 17, face="bold"), axis.text = element_text(size = 17, face = "bold"))+
  scale_x_continuous(breaks = seq(2000,2015, by=1),labels = c(2000,rep("",4),2005,rep("",4), 2010, rep("",4),2015))+
  scale_y_continuous(sec.axis = sec_axis(~(.-2.15)*10.929, name = "mean HbA1c (%)"))
库(dplyr)
图书馆(GG2)
库(重塑2)##用于“熔化”

指数下面的建议会走向正确的方向吗?要点是:使用Reforme2中的“melt”将数据转换为友好的图形。通过
scale\u linetype\u manual
scale\u color\u manual
我明确提供了颜色和线型

library(dplyr)
library(ggplot2)
library(reshape2) ## for "melt"

indexYear <- as.numeric(2000:2010)
lDLatIndex <- rep.int(4,11) 
LDLoneYear <- c(rep.int(3,5), rep.int(2,6))  
hba1catIndex <- c(rep.int(8,6), rep.int(7.5,5))
hba1coneYear <- rep.int(7,11)

LDLeffect <- data.frame(indexYear, lDLatIndex, hba1catIndex, hba1coneYear, LDLoneYear)

melted_df <- melt(LDLeffect, id.vars="indexYear", measure.vars=c("lDLatIndex", "hba1catIndex", "hba1coneYear", "LDLoneYear"))

ggplot(melted_df, aes(x=indexYear, value, colour=variable)) + 
  geom_line(aes(linetype=variable), size = 2) + 
  scale_linetype_manual(values=c("F1", "twodash", "solid", "dashed")) +
  scale_colour_manual(values=c(rgb(237/255, 115/255,116/255), rgb(237/255, 115/255,116/255), rgb(152/255, 201/255,139/255), rgb(152/255, 201/255,139/255))) + 
  theme_classic() + 
  theme(legend.position = "bottom")+
  ylab("mean LDL cholesterol (mmol/l)")+
  xlab("Calendar year")+
  theme(axis.title = element_text(size = 17, face="bold"), axis.text = element_text(size = 17, face = "bold"))+
  scale_x_continuous(breaks = seq(2000,2015, by=1),labels = c(2000,rep("",4),2005,rep("",4), 2010, rep("",4),2015))+
  scale_y_continuous(sec.axis = sec_axis(~(.-2.15)*10.929, name = "mean HbA1c (%)"))
库(dplyr)
图书馆(GG2)
库(重塑2)##用于“熔化”

很明显。但是,对于如何在图例中显示线型,您有什么建议吗?所以我可以看到每个图例的线型是什么?实际上,显示了线型,但很难识别。使用“theme(legend.key.width=unit(1,“cm”)”,您可以展开图例中的线条,以便更好地显示类型。非常明显。但是,对于如何在图例中显示线型,您有什么建议吗?所以我可以看到每个图例的线型是什么?实际上,显示了线型,但很难识别。使用“theme(legend.key.width=unit(1,“cm”)”)可以展开图例中的线条,以便更好地显示类型。