楼主: allain
14199 15

[问答] ggplot2求教——如何调整x轴显示的时间刻度 [推广有奖]

11
allain 在职认证  发表于 2018-10-8 00:10:14
dididear 发表于 2018-10-7 13:23
那如果我的横坐标不是时间格式,是数值格式,但是也代表年份,出来的结果也是您这样,有的年份不显示,请 ...
用scale_x_continous或者scale_x_discrete调整

12
allain 在职认证  发表于 2018-10-8 00:10:14
dididear 发表于 2018-10-7 13:23
那如果我的横坐标不是时间格式,是数值格式,但是也代表年份,出来的结果也是您这样,有的年份不显示,请 ...
用scale_x_continous或者scale_x_discrete调整

13
allain 在职认证  发表于 2018-10-8 00:10:14
dididear 发表于 2018-10-7 13:23
那如果我的横坐标不是时间格式,是数值格式,但是也代表年份,出来的结果也是您这样,有的年份不显示,请 ...
用scale_x_continous或者scale_x_discrete调整

14
allain 在职认证  发表于 2018-10-8 00:10:15
dididear 发表于 2018-10-7 13:23
那如果我的横坐标不是时间格式,是数值格式,但是也代表年份,出来的结果也是您这样,有的年份不显示,请 ...
用scale_x_continous或者scale_x_discrete调整

15
dididear 发表于 2018-10-8 13:51:15
allain 发表于 2018-10-8 00:10
用scale_x_continous或者scale_x_discrete调整
好的,谢谢您

16
赵安豆 发表于 2024-8-14 19:58:00
为了让你的图表在X轴上展示每年的数据点,你可以通过使用`scale_x_date()`函数并配合`date_breaks`参数来实现。首先确保你的日期数据格式正确(可以是`"year"`或者`"%Y-%m-%d"`),然后调整代码如下:

```r
library(ggplot2)
library(scales)  # 确保安装和加载这个包,用于date_trans函数

# 假设dt1中的'year'列已经是日期格式了
# 如果不是日期格式,可以使用 as.Date() 或 lubridate 包的 ymd() 函数转换

ggplot(dt1, aes(x = year, y = rate)) +
  geom_line() +
  geom_point() +
  scale_x_date(breaks = date_breaks("1 year"), # 控制x轴上的时间间隔
               labels = date_format("%Y"))    # 控制显示的日期格式

# 如果你的数据是年份,你可能需要转换成日期格式:
# dt1$year <- as.Date(paste0(dt1$year, "-01-01"), "%Y-%m-%d")

```

如果`dt1$year`列原本是整数或字符代表的年份(例如2013),你可能需要使用`as.Date()`函数转换成日期格式,或者使用lubridate包的`ymd()`。这个例子中,我假设你的数据已经正确地转换成了日期格式。

如果你的数据中的'year'列是像"2013"这样的字符串或整数(表示年份),请确保先将其转换为日期对象:

```r
dt1$year <- as.Date(paste0(dt1$year, "-01-01"), format = "%Y-%m-%d")
```

或者使用lubridate包的`ymd()`函数,这取决于你的数据格式。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 12:00