日期格式的旋转轴标签
Posted
技术标签:
【中文标题】日期格式的旋转轴标签【英文标题】:rotating axis labels in date format 【发布时间】:2013-03-28 03:22:06 【问题描述】:有谁知道如何使用 ggplot2 以日期格式旋转轴刻度? 我想在 x 轴上以 45° 角获取带有“Date-Month”(例如“1985-5”)的标签。
数据样本:
Station Date Ptot
A 1980-02 16
A 1980-03 19
A 1980-04 40
A 1980-05 48
A 1980-06 NA
A 1980-07 18.5
A 1980-08 24.6
B 1980-07 50.8
B 1980-08 28.9
B 1980-09 32.9
B 1980-10 47.9
B 1980-11 16.3
我试过了:
library(ggplot2)
library(scales)
plot <- ggplot(data=na.omit(data), aes(x=Date, y=Ptot, group=Station))+
geom_line()+
facet_grid(Station~.)+
scale_x_date(breaks = "year", labels=date_format("%Y-%m"))+
xlab("Year")+
ylab("Prec (mm)")+
labs(colour = "Station")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))+
theme_bw()
plot
但它不起作用。
谢谢!
【问题讨论】:
您必须提供比数据和完整代码更好的可重现示例。 好的,我只是改进了问题中的细节...... 检查@Didzis 的编辑,他解释了您的Date
列的问题。
【参考方案1】:
首先,您应该将列 Date
设为日期。由于它没有提供日期,因此您应该在每个日期中添加例如 01 并转换它们。
data$Date<-as.Date(paste(data$Date,"-01",sep=""),format="%Y-%m-%d")
要在 x 轴下正确放置标签,您不仅应该设置angle=
,还应该设置hjust=1
,以确保标签的末端位于刻度线下方。 theme_bw()
也应该放在轴文本的主题规范之前。
ggplot(data=na.omit(data), aes(x=Date, y=Ptot, group=Station))+
geom_line()+
facet_grid(Station~.)+
scale_x_date(breaks = "month", labels=date_format("%Y-%m"))+
xlab("Year")+
ylab("Prec (mm)")+theme_bw()+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
【讨论】:
我正要写这个。 谢谢!我不说我对我的“日期”栏做了日期转换……我还是要学会优化这个论坛的使用。我的问题是 theme_bw() 的位置 @user2165907 theme_bw() 还为axis.text设置了参数,所以它应该放在你的参数之前。 更新您现在可能需要添加vjust = 0.5
以获得更好的对齐。感谢@jupp0r 的comments in this answer 主题(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))以上是关于日期格式的旋转轴标签的主要内容,如果未能解决你的问题,请参考以下文章