我一直在努力创建一个时间序列点图(而不是盒图),它将容纳下面显示的样式化数据,其中每天有多个数据点。
这些数据是稀疏填充的,在日期范围内将在许多天内丢失数据,但是有些日子可能在一个狭窄的值范围内有数百个数据点。X轴必须跨越整个日期范围,即使在没有任何数据的日子里也必须包含漂亮的滴答记号。
如果x轴标签垂直定位,y轴标签水平定位,我会很高兴。
我一直在帮助和谷歌周围和花了几个小时的ggplot2,ts(),轴()设置等,但没有成功。X轴特别成问题。
这看起来应该很容易,但我是一个R的菜鸟。
dt, RotMarks
2017-01-01, 1
2017-01-01, 3
2017-03-10, 2
2017-03-10, 4
2017-03-10, 6
2017-06-15, 10
2017-06-15, 15
2017-09-20, 1
2017-10-31, 12
2017-10-31, 12
2017-10-31, 12
2017-10-31, 12
2017-10-31, 12
2017-10-31, 12
2017-10-31, 12
2017-10-31, 4
2017-10-31, 4
2017-10-31, 4
2017-10-31, 4
2017-10-31, 1
2017-10-31, 1
2017-10-31, 1
2017-10-31, 1
2017-12-31, 1
2017-12-31, 1
2017-12-31, 1 发布于 2017-12-26 02:56:48
使用潮间带包的解决方案。我不认为在x轴上标上每一个日期是个好主意,因为它太拥挤了。您可以看到,该示例使用日期中断作为"2周“,它已经有点拥挤。date_labels = "%Y-%m-%d"指定日期格式。axis.text.x = element_text(angle = 90, hjust = 1)是垂直定位x标签。
library(tidyverse)
# Expand the data frame to full sequence of dates
dat2 <- dat %>%
mutate(dt = as.Date(dt)) %>%
complete(dt = full_seq(dt, period = 1))
ggplot(dat2, aes(x = dt, y = RotMarks)) +
geom_point() +
scale_x_date(name = "Date",
date_labels = "%Y-%m-%d",
date_breaks = "2 weeks") +
theme(axis.text.x = element_text(angle = 90, hjust = 1))

数据
dat <- read.csv(text = "dt, RotMarks
2017-01-01, 1
2017-01-01, 3
2017-03-10, 2
2017-03-10, 4
2017-03-10, 6
2017-06-15, 10
2017-06-15, 15
2017-09-20, 1
2017-10-31, 12
2017-10-31, 12
2017-10-31, 12
2017-10-31, 12
2017-10-31, 12
2017-10-31, 12
2017-10-31, 12
2017-10-31, 4
2017-10-31, 4
2017-10-31, 4
2017-10-31, 4
2017-10-31, 1
2017-10-31, 1
2017-10-31, 1
2017-10-31, 1
2017-12-31, 1
2017-12-31, 1
2017-12-31, 1",
header = TRUE, stringsAsFactors = FALSE)https://stackoverflow.com/questions/47973375
复制相似问题