有沒有什麼辦法可以在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值 - 它只是疊加是他們。
# 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')
有沒有人能夠成功地做到這一點?謝謝!
編輯澄清:我知道可以首先做一個cumsum,然後創建圖表,但仍然欣賞響應!我想知道是否可以在圖表內進行總和,以使其表現得像堆疊酒吧一樣,點擊圖例去除一個組顯示剩餘組的總和。
D'哦,對不起!實際上是一個獨立的例子。 (並在新鮮環境中確認) 另外,感謝您的回答!我希望有一個解決方案可以產生類似堆積的條形圖,其中不需要事先提供cumsum,用戶可以刪除一個組並查看三個項目中任意兩個項目的總和。 – kkd42