如何在ggplot中设置时间X轴范围并修改刻度标签?
解决X轴刻度与标签调整问题
你的hour列是hms类型(属于时间间隔类),不用scale_x_datetime,改用scale_x_time就能精准调整。直接在ggplot代码里加上自定义的刻度和标签即可:
修改后的完整代码:
library(ggplot2) library(hms) # 未安装的话先运行 install.packages("hms") ggplot(data = tweetsperhour, aes(x = hour, y = sum.hour)) + theme_bw() + geom_bar(stat = "identity", color = "#1DA1F2", fill = "#1DA1F2") # 去掉无用的position="dodge",添加填充色让柱子更清晰 labs(title = "一天中各时段的推文数量(GMT-6)", subtitle = "共18,404条推文", x = "时段", y = "推文数量") + scale_x_time( breaks = hms(0:23 * 3600), # 指定0到23点对应的时间间隔作为刻度位置 labels = 0:23, # 将标签替换为0-23的数字 limits = hms(c(0, 23 * 3600)) # 限制X轴范围在0到23点,彻底避免出现24点刻度 )
关键说明:
scale_x_time专门适配hms/difftime类型的X轴,比scale_x_datetime更匹配你的数据类型breaks参数精准指定要显示的刻度位置,用hms()生成对应0到23点的秒数labels直接用数字向量替换原有的00:00:00格式标签limits限定X轴范围,从根源上杜绝24点刻度出现
内容的提问来源于stack exchange,提问作者Cole Baril
相关产品推荐
相关产品推荐

