Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R绘图,复合散点图_R_Plotly_Scatter Plot_R Plotly - Fatal编程技术网

R绘图,复合散点图

R绘图,复合散点图,r,plotly,scatter-plot,r-plotly,R,Plotly,Scatter Plot,R Plotly,我有一个数据集,它包含三列:日期不带时间戳,时间转换为与日期相关的特定事件从午夜开始的小时数。第三列是阶段,即或上午,下午,晚上或晚上。相位由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)来

我有一个数据集,它包含三列:
日期
不带时间戳,
时间
转换为与日期相关的特定事件从午夜开始的小时数。第三列是
阶段
,即或
上午
下午
晚上
晚上
。相位由
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轴上有
    日期
    的散点图,y轴上有
    时间
    的散点图,每个日期上都有时间标记
  • 阶段的半透明波段
    在图表上水平运行,便于解释时间段和
    阶段的标记分布
下面的代码让我接近我想要的结果,但不完全如此

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

p多亏@user12728748,我才得以完成这项任务。代码更改如下:

df.phase <- data.frame(start = c(0,4,10,16,22), end = c(4,10,16,22,24), phase = c("Night", "Morning", "Afternoon", "Evening", "Night"))

p <- ggplot(clean.data, aes(x=Date,y=TimeTS)) +
  geom_rect(data=df.phase, inherit.aes = FALSE, aes(
    xmin= min(clean.data$Date),
    xmax= max(clean.data$Date),
    ymin=start,
    ymax=end,
    fill=phase), alpha=0.5) +
  scale_fill_manual(values=c("Morning" = "orange", "Afternoon" = "blue", "Evening" = "pink", "Night" = "black")) +
  geom_point()
p <- ggplotly(p)
p

df.phase您需要为矩形创建单独的data.frame,并定义其起点和终点。有关问题的(部分)解决方案,请参阅。@user12728748,thx mate。我明天会试试这个,然后让你知道它是怎么回事。