2016-11-30 16 views
-2

は私も十分であろうorbit chart(例えばPlotlyなど)Rで軌道図を作成するには? (Plotly/ggplot2)

私は理想的なインタラクティブバージョンを作成できるようにしたいと思いますがggplot2を作成する方法についてはなしの方向で研究の時間を費やしてきました。

何か提案がありがとうございます! ggplot2使用

答えて

1

ある週前の週のビジュアルコンテストでは、このようなグラフをいくつか作成しました。私は普遍的に受け入れられている用語は今 "接続散布図"だと思う。

ここにスケルトン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") 

あなたが接続されている散布図を生成するために、両方のggplotplotlyためのコードが含まれてgithub repo for my submissionで見ることができます。

1

geom_path()は、彼らがデータに表示される順序で観測を接続しています。 geom_line()は、x軸の変数の順にそれらを接続します。 ggplotマニュアルページからの引用

http://docs.ggplot2.org/current/geom_path.html

あなたはより多くの制御をしたい場合にも、geom_curvegeom_segmentを試してみることがあります。

0

@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)) 
関連する問題