我想使用ggplot在R中绘制时间序列数据,但我遇到了这个错误:
Error in continuous_scale(aesthetics, "date", identity, breaks = breaks, :
unused argument(s) (format = "%b-%Y")
语法:
ggplot(p29, aes(dt, ambtemp)) + geom_line() +
scale_x_date(format = "%b-%Y") + xlab("") + ylab("Tempreture")
文件名:p29
ambtemp dt surtemp
1 -1.14 2007-09-29 00:01:57 -2.712
2 -1.12 2007-09-29 00:03:57 -2.775
3 -1.33 2007-09-29 00:05:57 -2.712
4 -1.44 2007-09-29 00:07:57 -2.837
5 -1.54 2007-09-29 00:09:57 -2.775
6 -1.29 2007-09-29 00:11:57 -2.900
答案 0 :(得分:2)
在函数scale_x_date()
中,您应该写labels=date_format("%b-%Y")
。另外,列dt
的格式应为Date
。
library(scales)
p29$dt=as.Date(p29$dt, format="%Y-%m-%d %H:%M:%S")
ggplot(p29, aes(dt, ambtemp)) + geom_line() +
scale_x_date(labels=date_format ("%b-%Y")) + xlab("") + ylab("Tempreture")
要显示小时和分钟,而不是功能scale_x_date()
,您应该使用scale_x_datetime()
并撰写labels=date_format("%H:%M")
。要使用控制中断参数breaks=date_breaks()
。另外,列dt
的格式应为POSIXt
。
library(scales)
p29$dt=strptime(p29$dt, "%Y-%m-%d %H:%M:%S")
ggplot(p29, aes(dt, ambtemp)) + geom_line() +
scale_x_datetime(breaks = date_breaks("5 min"),labels=date_format("%H:%M")) + xlab("") + ylab("Tempreture")