는 나뿐만 아니라 충분할 것 인 orbit chart (예 : Plotly 등)R에서 궤도 차트를 만드는 방법은 무엇입니까? (Plotly/ggplot2)
내가 이상적으로 대화 형 버전을 만들 수 있도록하고 싶습니다하지만 ggplot2를 만드는 방법에 대한 어떤 방향으로 연구 시간을 보냈습니다.
모든 의견을 보내 주시면 감사하겠습니다.
는 나뿐만 아니라 충분할 것 인 orbit chart (예 : Plotly 등)R에서 궤도 차트를 만드는 방법은 무엇입니까? (Plotly/ggplot2)
내가 이상적으로 대화 형 버전을 만들 수 있도록하고 싶습니다하지만 ggplot2를 만드는 방법에 대한 어떤 방향으로 연구 시간을 보냈습니다.
모든 의견을 보내 주시면 감사하겠습니다.
몇 시간 전 주간의 비주얼 경연 대회에 대해 이렇게 약간의 차트를 만들었습니다. 나는 지금 일반적으로 받아 들여지는 용어가 "연결된 산점도 (scatterplot)"라고 생각한다.
여기 내가 사용한 골격 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 볼 수 있습니다.
사용 ggplot2 :
는 ggplot 매뉴얼 페이지에서 촬영 : 당신이 더 많은 제어를 원하는 경우도
geom_path()
들이 데이터에 나타나는 순서대로 관찰을 연결합니다.geom_line()
은 x 축의 변수 순서대로 연결합니다.
geom_curve
및
geom_segment
을 시도 할 수
http://docs.ggplot2.org/current/geom_path.html
.
@ 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))