【问题标题】:Plotting Python Plotly ECDF subplots with marginal plots用边际图绘制 Python Plotly ECDF 子图
【发布时间】:2021-11-17 03:04:46
【问题描述】:

我想在一个子图中绘制几个图,特别是在 plotly express 下找到的 ecdf 图。不幸的是,我无法让它工作,因为它似乎 subplot 需要一个图形对象 plotly plot。该错误表示它接收到无效数据,具体来说:

“收到的‘数据’属性无效元素”

显然,这意味着以下内容中不包括 ecdf: ['bar', 'barpolar', 'box', 'candlestick', '地毯','choropleth','choroplethmapbox', '锥形','轮廓','轮廓地毯', '密度图框','漏斗','漏斗区域', '热图','热图gl','直方图', 'histogram2d', 'histogram2dcontour', '冰柱', '图像','指标','等值面','mesh3d', 'ohlc', 'parcats', 'parcoords', 'pie', 'pointcloud', 'sankey', 'scatter', 'scatter3d','scattercarpet','scattergeo', 'scattergl','scattermapbox','scatterpolar', 'scatterpolargl','scatterternary','splom', 'streamtube'、'sunburst'、'表面'、'桌子'、 “树图”、“小提琴”、“音量”、“瀑布”]

太好了,现在有什么办法可以让我将这些人中的几个人放在一起吗?

这是文档中简单 ecdf 图的代码。

import plotly.express as px
df = px.data.tips()
fig = px.ecdf(df, x="total_bill", color="sex", markers=True, lines=False, marginal="histogram")
fig.show()

例如,如果我想将两个相同的图绘制在一起,我希望以下代码(基本上从文档中复制)可以工作,(如果它接受 ecdf)但我无法让它工作上述原因。

from plotly.subplots import make_subplots
import plotly.graph_objects as go

df = px.data.tips()
fig = make_subplots(rows=1, cols=2)

fig.add_trace(
    px.ecdf(df, x="total_bill", color="sex", markers=True, lines=False, marginal="histogram"),
    row=1, col=1
)

fig.add_trace(
    px.ecdf(df, x="total_bill", color="sex", markers=True, lines=False, marginal="histogram"),
    row=1, col=2
)

fig.update_layout(height=600, width=800, title_text="Side By Side Subplots")
fig.show()

px.ecdf 子图有解决办法吗?

提前谢谢你!

【问题讨论】:

    标签: python plot plotly plotly-python


    【解决方案1】:
    • ECDF 图遵循具有face_col 参数https://plotly.com/python-api-reference/generated/plotly.express.ecdf.htmlPlotly Express 模式
    • 实现此功能的最简单方法是为此功能准备数据帧。在此示例中,创建了两个数据副本,每个副本都有一个用于此功能的列
    • 替代方案要复杂得多,make_subplots()px.ecdf() 都创建多个 x 和 y 轴。有必要自己管理所有这些
    import plotly.express as px
    import pandas as pd
    df = px.data.tips()
    df = pd.concat([px.data.tips().assign(col=c) for c in ["left","right"] ])
    fig = px.ecdf(df, x="total_bill", color="sex", markers=True, lines=False, marginal="histogram", facet_col="col")
    
    fig.update_layout(height=600, width=800, title_text="Side By Side Subplots")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-27
      • 2018-01-16
      • 2021-04-26
      • 1970-01-01
      • 2022-01-14
      • 2018-09-11
      相关资源
      最近更新 更多