r - ggplot2:删除和替换轴
问题描述
我正在尝试按 Julian Day 绘制时间序列数据集,但 x 轴标签以月为单位(信息量更大的区间)。在我知道我会使用的基本绘图函数中xaxt="n"
,axis
但我无法找出 ggplot 等效项。
例子:
temp <- c(8,10,9,12,15,16,22,12,5,4)
julian_day <- c(1,25,63,65,70,77,150,260,300,350)
temp_month <- c(1, 1, 3, 3, 4, 4, 6, 9, 10, 12)
x <- data.frame(temp, julian_day, temp_month)
ggplot(x, aes(julian_day, temp)) + geom_line() +
theme(axis.title.x=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank())
我能够通过正确的变量绘制并删除 x 轴,但我无法弄清楚如何添加轴x$temp_month
我尝试添加scale_x_discrete(breaks=c(1:12), labels=c(1:12))
和/或theme(axis.text.x = buoy_agg$month)
但都没有工作。
我认为这只是找到正确命令的问题。有小费吗?
谢谢!
解决方案
在绘制日期时,我强烈建议使用Date
类数据并使用scale_x_date
- 您可以使用参数轻松自定义轴scale_x_date
以显示月份名称、月份缩写、月份编号或任何其他日期格式。
由于您有儒略日,我已将其转换为任意非闰年的日期。只要您不标记年份,我们就可以轻松获得正确的月份标签。
x$date = as.Date("2018-12-31") + x$julian_day
ggplot(x, aes(date, temp)) +
geom_line() +
scale_x_date(date_labels = "%b", name = "")
如果您想要月份编号而不是月份缩写,请切换%b
到。%m
有关?scale_x_date
更多选项和示例,请参阅。
推荐阅读
- javascript - 获取“TypeError:'' 不是有效的 JavaScript MIME 类型。” 在 IOS Safari 上非常零星
- typescript - 具有不同 arg 对象签名的打字稿函数重载
- .htaccess - htaccess 文件夹和文件异常不起作用
- amazon-web-services - 当任何文件上传到 s3 存储桶时,如何在 AWS EC2 中使用 ClamAV Antivirus 扫描 S3 存储桶对象?
- vb.net - 以管理员身份运行 DLL
- java - Selenium junit 问题 - 消息:没有这样的警报
- javascript - 在 React Native 应用程序中可按不可触摸
- ssas - SSAS 表格:部署元数据时出错。一对多关系中的列上的重复值
- linux - 如何为在linux中执行的命令设置命令执行超时
- java - @JSONField 它在春季启动时不起作用