如何在绘制的3D图中包含平滑的数据线

时间:2019-07-17 21:34:50

标签: r ggplot2 plotly r-plotly

我是R的新手,在绘制时甚至更新,并且使用的是真实的风速数据,以3 Hz风速计以1 Hz的频率采集了100分钟,以使数据可视化。我已经能够使用ggplot生成2D散点图,然后使用geom_smooth覆盖“平滑”线。 2D example
我绘制了一个3D散点图(x =时间,y =风速,z =风向)。数据有很大的差异。 3D plot

我想做的是将3D图中的平滑数据显示为线(可能覆盖点云),其中x =时间,y =平滑风速,z =平滑风向作为线。

我花了很多时间使用Google,但没有找到任何示例。如我所料,geom_smooth显然不能与plotly共存。

ggplot代码段

p4 <- ggplot(upper.ws.df, aes(elapsed.sec, WindDir)) + 
geom_point(colour = "tan", size = 0.25) +
stat_smooth(aes(color = '8'), size = 0.5, method = lm, 
  formula = y ~ splines::bs(x, 8), se = FALSE ) +
  # more code
puwdir.smoothed <- ggplotly(p4)

完整的3D代码

axz <- list(title = 'Direction',
      ticketmode = 'array',
      ticktext = c('E', 'NE', 'N'),
      tickvals = c(0, 2*pi/8, 2*pi/4) )
# Create the plot
p3d.scatter <- plot_ly(upper.ws.df, 
        x = ~elapsed.sec, y = ~WindSpeed, z = ~WindDir,
        type = "scatter3d", mode = 'markers',
        marker = list(size = 0.6, color= ~elapsed.sec, 
        colorscale = list(c(0,'#BA52ED'), c(1,'#FCB040')))
        ) %>%,

  layout(
    scene = list(
      xaxis = list(title = 'Elapsed Time (s)'),
      yaxis = list(title = 'Speed (m/s'),
      zaxis = axz) 
      )

p3d.scatter

0 个答案:

没有答案