我花时间研究没有指导如何创建orbit chart
理想情况下,我希望能够创建交互式版本(例如Plotly),但ggplot2也足够了 .
任何建议都非常感谢!
对于不久前的每周一次竞赛,我创建了一些像这样的图表 . 我认为现在普遍接受的术语是“连接散点图” .
这是我使用的骨架 plotly 代码 .
plotly
plot_ly( df, x = x_var, y = y_var, group = group_var, mode = "markers") %>% add_trace( x = x_var, y = y_var, xaxis = list(title = ""), yaxis = list(title = ""), group = group_var, line = list(shape = "spline"), showlegend = FALSE, hoverinfo = "none")
您可以查看github repo for my submission,其中包含 ggplot 和 plotly 的代码,以生成连接的散点图 .
ggplot
使用ggplot2:
geom_path()按照它们在数据中出现的顺序连接观察 . geom_line()按x轴上的变量顺序连接它们 .
取自ggplot手册页:http://docs.ggplot2.org/current/geom_path.html
如果你想要更多控制,你也可以尝试 geom_curve 和 geom_segment .
geom_curve
geom_segment
感谢@Bishop,我能够制定出与我理想的轨道聊天非常接近的东西 . 我包括一些图表注释,开始和结束日期以及方向是最佳解决方案的标签 .
max_date <- final_data_grp[which.max(final_data_grp$week_num), ] min_date <- final_data_grp[which.min(final_data_grp$week_num), ] end <- list( x = max_date$AreaWOH, y = max_date$SLevel, text = paste('End', max_date$MondayDate), xref = "x", yref = "y" ) start <- list( x = min_date$AreaWOH, y = min_date$SLevel, text = paste('Start', min_date$MondayDate), xref = "x", yref = "y" ) best_label = list( x = min(final_data_grp$AreaWOH), y = max(final_data_grp$SLevel), text = 'Best Scenario', showarrow = FALSE, bordercolor='#c7c7c7', borderwidth=2, borderpad=4, bgcolor='#ff7f0e', opacity=.7 ) plot_ly( final_data_grp, x = AreaWOH, y = SLevel, group = MondayDate, showlegend = FALSE, marker = list(size = 8, color = 'black', opacity = .6)) %>% add_trace( x = AreaWOH, y = SLevel, line = list(shape = "spline"), hoverinfo = "none", showlegend = FALSE) %>% layout(annotations = list(start, end, best_label))
3 回答
对于不久前的每周一次竞赛,我创建了一些像这样的图表 . 我认为现在普遍接受的术语是“连接散点图” .
这是我使用的骨架
plotly
代码 .您可以查看github repo for my submission,其中包含
ggplot
和plotly
的代码,以生成连接的散点图 .使用ggplot2:
取自ggplot手册页:http://docs.ggplot2.org/current/geom_path.html
如果你想要更多控制,你也可以尝试
geom_curve
和geom_segment
.感谢@Bishop,我能够制定出与我理想的轨道聊天非常接近的东西 . 我包括一些图表注释,开始和结束日期以及方向是最佳解决方案的标签 .