Rでplot_lyを使用してのみ積み上げ棒グラフを作成する方法はありますか?私は可能な解決策がuse ggplot and then convert with ggplotlyにあることを認識していますが、それは他のプロットのように見栄えが悪いです。 Plotly siteには例がありますが、凡例をクリックしてカテゴリを削除すると、合計は同じになります。PlotlyとRをggplotなしで使用した積み重ね領域チャート
例のデータを作成します。
library(tidyverse)
library(plotly)
# Create some data
grpnames <- c("Thing_3", "Thing_2", "Thing_1")
xval <- as.factor(c(100, 101, 102, 103))
frame <- merge(grpnames, xval, all=T)
yval <- runif(12, 0, .2)
df <- tbl_df(cbind(frame, yval))
colnames(df) <- c("GroupName", "X", "Y")
df.wide <- spread(df, key = GroupName, value = Y)
積み重ね棒グラフ作品:
# Creates a legit stacked bar where values sum to highest point
plot_ly(df, x = ~X, y = ~Y, color = ~GroupName, type='bar') %>%
layout(barmode = 'stack')
私は折れ線グラフのための "barmode = 'スタック'" にアナログ見つけることができませんでした:
を# Attempt with tidy data
df %>%
plot_ly(
x = ~X,
y = ~Y,
color = ~GroupName,
type='scatter',
mode = 'lines',
fill = 'tonexty',
fillcolor = ~GroupName)
ここで試したPlotly側の例では、Xの各値にYの値を追加しません。単純にoverlaそれらのys。
# Attempt with wide data
df.wide %>%
plot_ly(
x = ~X,
y = ~Thing_1,
name = 'Thing 1',
type = 'scatter',
mode = 'none',
fill = 'tozeroy',
fillcolor = 'aquamarine') %>%
add_trace(
x = ~X,
y = ~Thing_2,
name = 'Thing 2',
fill = 'tonexty',
fillcolor = 'orange') %>%
add_trace(
x = ~X,
y = ~Thing_3,
name = 'Thing 3',
fill = 'tonexty',
fillcolor = 'gray')
誰でもこれを正常に実行できましたか?ありがとう!
編集のために編集:最初に熊手を行い、次にグラフを作成することは可能ですが、依然として回答に感謝しています。チャート内で合計を行うことができるかどうか、積み重ね棒のように振る舞い、グループを削除する凡例をクリックすると残りのグループの合計が表示されるかどうかは疑問です。
はD'ああ、ごめんなさい!実際にはスタンドアロンの例になるように編集されています。 (新鮮な環境で確認された) また、あなたの答えに感謝します!私は、ユーザーがグループを削除して3つのアイテムのいずれか2つの合計を見ることができる事前にcumsumする必要がない積み重ね棒グラフのようなものをもたらす解決策があることを望んでいました。 – kkd42