为什么ggplot2绘制的甘特图时间轴显示德语月份,该如何修改?
问题原因
R的日期时间格式化规则默认继承操作系统的区域(locale)设置,和RStudio的界面语言设置相互独立。你当前系统语言为德语,所以R默认读取的时间区域配置为德语,输出的月份缩写自然会使用德语格式(如10月缩写为Okt)。
解决方法
提供两种可选择的方案:
方案1:临时修改当前R会话的全局时间区域
该方案会让当前会话中所有日期输出都使用英文格式,不同系统的执行命令不同:
- Windows系统:执行代码
Sys.setlocale("LC_TIME", "English") - Mac/Linux系统:执行代码
Sys.setlocale("LC_TIME", "en_US.UTF-8")
修改完成后重新运行ggplot绘图代码即可看到英文月份显示。
方案2:仅修改当前图表的X轴日期格式(更灵活)
如果不想修改全局配置,只需要调整这张甘特图的时间轴显示,可以借助scales包的日期格式化功能,手动指定英文区域:
# 先加载scales包(如果未安装先运行install.packages("scales")) library(scales) ggplot(gantt, aes(x=start, xend=end, y=wave, yend=wave)) + geom_segment(size = 10) + scale_x_datetime( date_breaks = "1 month", # 保留每月一个刻度的设置 labels = date_format("%b %Y", locale = locale("en")) )
内容的提问来源于stack exchange,提问作者skranz
相关产品推荐
相关产品推荐

