【发布时间】:2020-05-15 14:52:50
【问题描述】:
我有一个包含三列的数据集:Date 没有时间戳,当天的TimeTS 转换为与Date 关联的特定事件自午夜以来的小时数。第三列是Phase,它可以是morning、afternoon、evening 或night。相位源自TimeTS。
下面是一个示例
Date TimeTS Phase
2020-01-29 2.75 Night
2020-01-29 4.83 Morning
2020-01-29 7 Morning
2020-01-30 10.6 Afternoon
我需要使用像plotly 这样的交互式图表来显示以下内容:
- 一个散点图,x 轴上带有
Date,y上带有Time,每个日期标记了每个时间实例 -
Phase的半透明波段在图表上水平排列,以便于解释时间波段和Phase标记的分布
下面的代码给了我接近我想要的结果,但不完全是。
p <- ggplot(clean.data, aes(x=Date,y=TimeTS)) +
geom_rect(data=clean.data, mapping = aes(
xmin=min(Date),
xmax=max(Date),
ymin=0,
ymax=24,
fill=Phase), alpha=0.1) +
# scale_fill_manual(values=c("Morning" = "red", "Afternoon" = "blue", "Evening" = "green", "Night" = "black")) +
geom_point()
p <- ggplotly(p)
p
这让我只得到图表上的Phase 乐队之一,而不是其他乐队。另外,我认为它是垂直运行而不是水平运行。
感谢任何想法。
【问题讨论】:
-
您需要为矩形创建一个单独的 data.frame 并定义它们的起点和终点。请参阅https://stackoverflow.com/questions/32543176/highlight-areas-within-certain-x-range-in-ggplot2 了解您的问题的(部分)解决方案。
-
@user12728748,谢谢队友。我明天会试试这个,然后告诉你,结果如何。
标签: r plotly scatter-plot r-plotly