在使用pandas的Plotly条形图中限制特定数量的条形堆栈

2024-05-13 01:50:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个带有堆叠条的Plotly graph对象,我只希望x轴上有10个堆叠/类别,按总降序排序,而不管垂直堆叠了多少。堆叠的大小在1到3条之间变化。由于Plotly的设计目的是显示传递给它的所有数据,因此我希望剪裁数据帧中已经存在的数据

我的第一反应是使用nlargest(),然后跟踪条堆叠的每个唯一颜色值:

n=???
dataframe.set_index(x_key).nlargest(n, y_key, keep='all').reset_index()
figure = go.Figure()

for color in df[color_column].unique():
    figure.add_trace(
        go.Bar(
            x=df.loc[df[color_column] == color][x_key],
            y=df.loc[df[color_column] == color][y_key],
            name=color
        )
    )

因此,我必须通过一个“n”限制,这将导致图形上最多10个唯一的x值。”n'可以是10到30之间的任意值,这取决于堆叠的程度

我该怎么做?有没有比NLAGEST和尝试确定“n”更好的方法


Tags: 数据对象keygodfindexcolumnplotly