【问题标题】:Stacked Area Chart in Plot.ly and RPlot.ly 和 R 中的堆积面积图
【发布时间】:2015-12-22 22:31:45
【问题描述】:

Plot.ly 对此有一个tutorial 用于 Python:

# Add original data
x=['Winter', 'Spring', 'Summer', 'Fall']

y0_org=[40, 80, 30, 10]
y1_org=[20, 10, 10, 10]
y2_org=[40, 10, 60, 80]

# Add data to create cumulative stacked values
y0_stck=y0_org
y1_stck=[y0+y1 for y0, y1 in zip(y0_org, y1_org)]
y2_stck=[y0+y1+y2 for y0, y1, y2 in zip(y0_org, y1_org, y2_org)]

R 似乎没有任何类似的教程。我尝试使用 R 的填充区域绘图教程,但未能构建堆叠图。

library(plotly)
p <- plot_ly(x = c(1, 2, 3, 4), y = c(0, 2, 3, 5), fill = "tozeroy")
add_trace(p, x = c(1, 2, 3, 4), y = c(3, 5, 1, 7), fill = "tonexty")

如何在 R/Plot.ly 中复制上述代码以创建堆积面积图?非常感谢!

【问题讨论】:

    标签: r plotly stacked-area-chart


    【解决方案1】:

    这就是我得到它的方式:

    library(plotly)
    
    x <- c('Winter', 'Spring', 'Summer', 'Fall')
    y0 <- c(40, 80, 30, 10)
    y1 <- c(20, 10, 10, 10)
    y2 <- c(40, 10, 60, 80)
    
    y1 <- y0 + y1
    y2 <- y1 + y2
    
    p <- ggplot() + 
      geom_area(aes(x, y2, fill = 'green')) +
      geom_area(aes(x, y1, fill = 'blue')) +
      geom_area(aes(x, y0, fill = 'red'))
    
    ggplotly(p)
    

    【讨论】:

    • 非常感谢@teja-k!该代码完美运行。但是,我的数据集并不那么简单 - 一些 y0 值可能高于 y2 或 y1 值高于 y2。我正在将我得到的结果的屏幕截图添加到原始帖子中。
    • 非常感谢!我自己也想通了 :) 您必须创建堆叠变量,从最大的变量开始,然后移至具有最小值的变量: p
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-07
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2011-06-29
    相关资源
    最近更新 更多