ggplot2日期时间标度的设置

本文介绍如何使用R语言的ggplot2包绘制以日期为横轴的时间序列图,并特别关注于设置日期轴的标度,以实现每月一次的频率显示数据。通过具体实例展示了如何读取数据、处理日期格式并进行图表绘制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前做了几次用时间做x轴的图,但是标度设置总是不尽如人意,今天中午一时兴起就仿照之前一篇关于一次数据分析大赛的推送中的图做了一幅图,在我查阅了ggplot2的帮助文件之后终于做成功了。

我是想做一幅横轴为日期,纵轴为刷卡进入厦大图书馆的人次的图,代码如下
menjin <- read.csv("menjin.csv",header = T,stringsAsFactors = F)
menjin$grade <- substring(menjin$studentcode,4,7)
menjin$date <-
sapply(strsplit(menjin$VisitTime,split =" "),function(x)x[1])
menjin$weekday <- as.POSIXlt(menjin$VisitTime,format = "%Y/%m/%d %H:%M")$wday
menjin$isWeekend <- ifelse(menjin$weekday == 0 | menjin$weekday == 6,1,0)
menjin$date <- as.Date(menjin$date,"%Y/%m/%d")
library(ggplot2)
qplot(date,data = menjin[menjin$grade == "2014",],geom = "bar",
fill = as.factor(1 - isWeekend)) +
theme(axis.text.x = element_text(angle = 90)) +
labs(x = "日期",y = "入馆人次",title = "经济学院2014级2014-2015年度入馆人次") +
scale_x_date(date_breaks = "1 month") + theme(legend.position = "none")

效果如图

之前看的ggplot2一书中并没有详细解释scale_x_date()函数的用法,查阅帮助文档即可发现,要想设置一个月为间隔应该使用scale_x_date(date_breaks = "1 month")而不是我之前想的breaks参数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值