【问题标题】:Multiple density plot with plotly in RR中的多密度图
【发布时间】:2017-12-08 09:25:39
【问题描述】:

我真的很喜欢这个 python 示例:https://plot.ly/python/distplot/ 滚动到 Plot Multiple Datasets。我希望 R 可以使用完全相同的东西,但它没有记录。这是否意味着不可能?我遇到了这个例子https://community.plot.ly/t/r-plotly-overlay-density-histogram/640/4,我觉得它不太好。 这不起作用,但可以让我了解我使用的数据。

# Add histogram data
x1 = data.table(a=rnorm(n = 200,mean = 0,sd = .1), by='Group1')
x2 = data.table(a=rnorm(n = 200,mean = 1,sd = .15), by='Group2')
x3 = data.table(a=rnorm(n = 200,mean = 2,sd = .2), by='Group3')
x4 = data.table(a=rnorm(n = 200,mean = 3,sd = .25), by='Group4')

agg <- rbind(x1,x2,x3,x4)
plot_ly(data = agg, type = "histogram",histnorm, name = "Histogram",group_by='by')
plot_ly(data = agg, type = "density",histnorm, name = "Density",group_by='by')

【问题讨论】:

    标签: python r plotly


    【解决方案1】:

    我不完全确定您在 R 中缺少哪个关键元素,但这是基于您的样本数据的基于 plotly 的密度加地毯图示例。

    这是静态的ggplot 版本。

    require(ggplot2);
    gg <- ggplot(agg, aes(x = a, colour = by)) + geom_density() + geom_rug();
    

    还有互动版ggplotlyed,包括截图。

    require(plotly);
    ggplotly(gg);
    

    您还可以使用例如添加直方图

    gg + geom_histogram(aes(y = ..density.., fill = by), alpha = 0.2, bins = 50)
    

    【讨论】:

    • @Tim_Utrecht ggplotlyplot_ly 都产生一个 plotly 对象,所以基本上没有区别。您无需绕道ggplotly 即可构建相同的交互式绘图。所以我不确定你在追求什么。我已经演示了如何在 R 中构建基于plotly 的交互式密度+直方图+地毯图,相当于您展示的基于 Python 的plotly 图。也许您可以在原始帖子中阐明 R 的 plotly 风味中缺少 Python 的 plotly 中的哪些元素?
    • @Tim_Utrecht PS。我从未见过plot_lyggplotly 相比有任何性能优势。另请参阅here 以了解ggplotly 实际上比plot_ly 明显 的示例。
    猜你喜欢
    • 2013-08-18
    • 2021-05-25
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 2013-05-19
    相关资源
    最近更新 更多