我试图用ggplot2绘制三条不同的线,显示三个不同变量(最大,最小和平均温度)的时间序列 . 当我想为每一行/变量设置颜色时,问题出现了 .
ggplot命令:
plot.temp=ggplot(data,aes_string(x="date", y="Tmed",colour="Tmed")) + geom_line() +
geom_line(data=data,aes_string(x="date",y="Tmin",colour="Tmin")) +
geom_line(data=data,aes_string(x="date",y="Tmax",colour="Tmax"))
我不使用组,因为每行代表一次,这里没有可用的类别 .
我尝试过在另一个帖子中找到的不同的optinos,如 scale_color_manual
,但随后会出现 Continuous value supplied to discrete scale
错误消息
您可以在http://ubuntuone.com/45LqzkMHWYp7I0d47oOJ02找到可以使用 data = read.csv(filename,header=T, sep=",",na.strings="-99.9")
轻松阅读的数据文件
我只是想手动设置颜色线但找不到方法 .
提前致谢 .
1 回答
首先,您需要将
date
转换为Date对象,因为现在它被视为因子 . 如果将日期视为因子,则将每个date
值假定为单独的组 .其次,当你使用
aes_string()
时,colour="Tmed"
被解释为依赖于实际Tmed
值的颜色 . 使用aes()
并仅为colour=
变量引用 . 此外,无需在每个geom_line()
中重复data=
参数,因为您使用相同的数据帧 .当然,您也可以融化数据,然后您只需要一个
geom_line()
调用(但仍需要更改日期列) .