首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每天绘制多次观测图

每天绘制多次观测图
EN

Stack Overflow用户
提问于 2017-12-26 02:25:39
回答 1查看 1.1K关注 0票数 0

我一直在努力创建一个时间序列点图(而不是盒图),它将容纳下面显示的样式化数据,其中每天有多个数据点。

这些数据是稀疏填充的,在日期范围内将在许多天内丢失数据,但是有些日子可能在一个狭窄的值范围内有数百个数据点。X轴必须跨越整个日期范围,即使在没有任何数据的日子里也必须包含漂亮的滴答记号。

如果x轴标签垂直定位,y轴标签水平定位,我会很高兴。

我一直在帮助和谷歌周围和花了几个小时的ggplot2,ts(),轴()设置等,但没有成功。X轴特别成问题。

这看起来应该很容易,但我是一个R的菜鸟。

代码语言:javascript
复制
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  
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-26 02:56:48

使用潮间带包的解决方案。我不认为在x轴上标上每一个日期是个好主意,因为它太拥挤了。您可以看到,该示例使用日期中断作为"2周“,它已经有点拥挤。date_labels = "%Y-%m-%d"指定日期格式。axis.text.x = element_text(angle = 90, hjust = 1)是垂直定位x标签。

代码语言:javascript
复制
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))

数据

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47973375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档