我想作一个图,在x轴上标记每天。
这是我的数据
my_data <- read.table(text="day value
11/15/19 0.23633
11/16/19 0.28485
11/17/19 0.63127
11/18/19 0.15434
11/19/19 0.47964
11/20/19 0.65967
11/21/19 0.48741
11/22/19 0.84541
11/23/19 0.10123
11/24/19 0.78169
11/25/19 0.23189
11/26/19 0.86665
11/27/19 0.55184
11/28/19 0.81410
11/29/19 0.25821
11/30/19 0.23576
12/1/19 0.46397
12/2/19 0.55764
12/3/19 0.95645
12/4/19 0.63954
12/5/19 0.76766
12/7/19 0.74505
12/8/19 0.65515
12/9/19 0.58222
12/10/19 0.17294", header=TRUE, stringsAsFactors=FALSE)
这是我的代码
my_data %>%
ggplot(aes(day, value)) +
geom_line() +
scale_x_continuous(breaks = seq(1, nrow(my_data)),
labels = my_data$day)
它给了我这个错误:Error in as.Date.numeric(value) : 'origin' must be supplied
我想做到这一点,以便每天在x轴上显示,并且默认情况下,它只处理该数据范围内包含的几天。
答案 0 :(得分:2)
尝试使用scale_x_date
代替scale_x_continuous
my_data %>%
ggplot(aes(x = mdy(day), value)) +
geom_line() +
scale_x_date(date_breaks = "1 day")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
答案 1 :(得分:2)
您可以使用lubridate
将数据转换为正确的日期格式:
library(lubridate)
my_data %>%
mutate(day = mdy(day)) %>%
ggplot(aes(day, value)) +
geom_line() +
scale_x_date(date_breaks = "1 day") +
theme(axis.text.x = element_text(angle=90, vjust=0.5))