は私も十分であろうorbit chart(例えばPlotlyなど)Rで軌道図を作成するには? (Plotly/ggplot2)
私は理想的なインタラクティブバージョンを作成できるようにしたいと思いますがggplot2を作成する方法についてはなしの方向で研究の時間を費やしてきました。
何か提案がありがとうございます! ggplot2使用
は私も十分であろうorbit chart(例えばPlotlyなど)Rで軌道図を作成するには? (Plotly/ggplot2)
私は理想的なインタラクティブバージョンを作成できるようにしたいと思いますがggplot2を作成する方法についてはなしの方向で研究の時間を費やしてきました。
何か提案がありがとうございます! ggplot2使用
ある週前の週のビジュアルコンテストでは、このようなグラフをいくつか作成しました。私は普遍的に受け入れられている用語は今 "接続散布図"だと思う。
ここにスケルトン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")
あなたが接続されている散布図を生成するために、両方のggplot
とplotly
ためのコードが含まれてgithub repo for my submissionで見ることができます。
:
geom_path()
は、彼らがデータに表示される順序で観測を接続しています。geom_line()
は、x軸の変数の順にそれらを接続します。 ggplotマニュアルページからの引用
:http://docs.ggplot2.org/current/geom_path.html
あなたはより多くの制御をしたい場合にも、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))