多行时如何更改geom_line的颜色?

时间:2019-04-26 16:23:37

标签: r ggplot2

我需要绘制一些数据,到目前为止,使用ggplot2并没有问题...到目前为止,我使用的代码如下:

ggplot(aes(x=mo,y=Sulphate, color=yr, group=yr),data=dd.tot)+
  geom_errorbar(aes(x=mo, ymin=Sulphate-Sulphate.1, ymax=Sulphate+Sulphate.1), width=0.25)+
  geom_point()+
  geom_line()+
  ggtitle("Sodium 0-1 um")+
  xlab("Date")+
  ylab("Sodium ng m3")
ggsave("Sodium.png", plot=last_plot(), device=png(), path="C:/Users/Raffaello/Desktop/R_Rita/Dekati_tot", width = 20, height = 14, units = c("cm"))

这给了我想要的结果 ggplot graph

现在,由于我需要添加多行,因此我更改了代码并添加了两个字符串geom_line

ggplot(aes(x=Date), data=dati)+
 geom_line(aes(y=Sodium, linetype="PM10"))+
 geom_line(aes(y=Sodium_ng_tot, linetype="Dekati Sum", color=yr))+
 ggtitle("Sodium")+
 xlab("Date")+
 ylab("Sodium ng m3")

但是我得到了从黑色到浅蓝色的渐变,而不是不同年份的不同颜色“块”

ggplot graph

有没有办法获得与以前相同的颜色?

1 个答案:

答案 0 :(得分:3)

ggplot对连续数据使用渐变色标,对分类数据使用定性色标。

您的dati$yr列必须为数字(连续),而您的dd.tot$yr列为factor(类别)。用dati$yr = factor(dati$yr)进行转换,或在color = factor(yr)内部将映射更改为aes()