如何绘制时间数据

时间:2019-03-10 12:31:17

标签: r date ggplot2 plot time

我的数据结构如下:

Data

现在,我想选择3个城市,并将它们绘制成一段时间(x =日期,y =金额)。此外,我希望每3个月在x轴上显示一次。

我尝试了ggplot,但似乎我的日期定义不正确。

1 个答案:

答案 0 :(得分:2)

制作数据框:

> city <- c('Berlin', 'Munchen', 'Koln', 'Hamburg', 'Dusseldorf', 'Frankfurt am Main', 'Leipzig')
> Date <- c('2015-01', '2015-01', '2015-01', '2015-01', '2015-01', '2015-01', '2015-01')
> AMount <- c(3740, 1282, 948, 946, 947, 302, 227)
> df <- data.frame(city, Date, AMount)
> df
               city    Date AMount
1            Berlin 2015-01   3740
2           Munchen 2015-01   1282
3              Koln 2015-01    948
4           Hamburg 2015-01    946
5        Dusseldorf 2015-01    947
6 Frankfurt am Main 2015-01    302
7           Leipzig 2015-01    227

日期转换为年份和月份。

> library(zoo)
> df$Date <- as.yearmon(df$Date)
> df
               city     Date AMount
1            Berlin Jan 2015   3740
2           Munchen Jan 2015   1282
3              Koln Jan 2015    948
4           Hamburg Jan 2015    946
5        Dusseldorf Jan 2015    947
6 Frankfurt am Main Jan 2015    302
7           Leipzig Jan 2015    227

使用ggplot绘制

> library(ggplot2)
> ggplot(df[1:3,], aes(x=as.Date(Date),y=AMount)) + geom_line() + scale_x_date(date_labels="%b %y")

%b =缩写的月份名称,例如一月

一月