【发布时间】:2018-05-25 17:59:27
【问题描述】:
我已经绘制了一个包含多个月度数据变量的数据框(下面的示例数据) - 该数据是每月绘制的,因此数据框有 12 行。我想将年度数据绘制在与月线顶部的每日点相同的图表上,但无法弄清楚。
library(ggplot2)
#generate monthly data
df <- data.frame(Month= seq(as.Date("2004/1/1"), by='month', length.out=12),
data = (seq(1:12)),
data2 = ((12:1)))
#melt the data together
samplemelt <- melt(df, id.vars='Month', variable.name ='Methods')
#create daily data to plot also
SampleData=data.frame(day=seq(as.Date("2004/1/1"), by='day', length.out=365),
data=rnorm(n=365,mean=6,sd=2))
#plot the data
ggplot(samplemelt, aes(Month, value))+
geom_line(aes(colour=Methods), size=1)
这绘制了两条线,但我想将每日值作为点添加到同一个图中。我试过了
ggplot(samplemelt, aes(Month, value))+
geom_line(aes(colour=Methods), size=1)+
geom_point(data=SampleData$data)
但这只会报错Error: ggplot2 doesn't know how to deal with data of class numeric
不确定这是否可行,或者我是否遗漏了一些非常明显的东西。请帮忙!
【问题讨论】:
-
将您使用的软件包添加到顶部,以便轻松复制并使其更有可能得到答案:-)
-
也许你想要这样的东西?
ggplot()+ geom_line(data = samplemelt, aes(Month, value, colour=Methods), size=1)+ geom_point(data = SampleData, aes(day, data)) -
正如 AntoniosK 指出的,error 是由将向量(或 data.frame 的列)传递给
data参数引起的,即不做数据=SampleData$data,当 SampleData 是 data.frame 时。 -
啊,是的,谢谢!它现在可以工作了:)