r - 将 x 标签格式化为 %d/%m
问题描述
我有一个创建的热图,我试图将 x 轴标签格式化为 %d/%m (dd/mm)。我需要将原始日期转换为离散的因子。尝试了以下代码,但它给了我一个错误:
ggplot(data,aes(x=as.factor(DATE) ,y=as.factor(PRODUCT),fill=escale)) +
geom_tile(colour="white",size=0.25) +
scale_x_discrete(position = "top",label=format(DATE,"%d/%y"))
如何编写正确的代码来格式化 x 标签,使其类似于“18/12”,例如 (dd/mm)。
解决方案
正如评论中所指出的,这在不转换为因子的情况下更容易做到,尽管您需要使用breaks
. scales::date_format
在中使用scale_x_date
:
library(ggplot2)
library(scales)
df <- data.frame(
expand.grid(date = as.Date(c("2019-11-01", "2019-11-20")),
y = letters[1:2]),
value = 1:4)
ggplot(df, aes(date, y, fill = value)) +
geom_tile() +
scale_x_date(breaks = df$date,
labels = date_format(format = "%d/%m"))
由reprex 包(v0.3.0)于 2019 年 12 月 18 日创建
听起来您也可能会scales::date_breaks
为您的特定用例获得一些里程,但如果没有更多细节就很难说。
推荐阅读
- ruby-on-rails - 如何处理条带支付成功?
- python - 如何在某些列中组合具有相同值的值
- c# - “IAppBuilder”不包含“UseCookieAuthentication”的定义
- javascript - translate 不是函数(在 'translate()' 中,'translate' 为真)
- android - 更新列表视图时如何保持滚动
- raku - 如何在 Raku 语法中使用 :global 进行匹配?
- python - 我正在抓取 rightmove 刮板网站,但在我的代码中引发此错误
- javascript - 推送到数组时,值被重复
- python - VS Code 在 Docker 容器中远程调试 Python
- spring - Spring批处理JpaPagingItemReader页面大小和maxitemcount