我是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