如何将 Plotly Express Icicle 图表从水平(从右到左)方向更改为垂直(从上到下)方向?

问题描述 投票:0回答:1

我使用冰柱图表从层次结构角度获取数据,并使用按钮来调整显示的值。以下是我的代码示例:

df = pd.DataFrame({
    'YEAR': ['2023', '2023', '2023', '2023'],
    'COMPANY': ['Company A','Company A','Company A','Company A'],
    'ORG': ['People', 'People', 'Customer', 'Customer'],
    'DEPARTMENT': ['HR', 'HR', 'Marketing', 'Marketing'],
    'AREA': ['Reward', 'Benefits', 'Campaigns', 'Insights'],
    'Employees': [5, 4, 9, 11],
    'Salary Cost' : [80000,75000,113000,140000]
})

figs = {
    c: px.icicle(df, path=["COMPANY","ORG", "DEPARTMENT", "AREA"], values=c, color='AREA', height=700)
    for c in ["Employees", "Salary Cost"]
}

fig = figs["Employees"]

#Button for FTE and HC
fig.update_layout(
    updatemenus=[
        {
            "buttons": [
                {
                    "label": c, #FTE or HC, needs to match df column names
                    "method": "restyle",
                    "args": [
                        {
                            "values": [figs[c].data[0].values],
                            "hovertemplate": figs[c].data[0].hovertemplate,
                        }
                    ],
                }
                for c in figs.keys()
            ]
        }
    ]
)

我希望冰柱图是自上而下而不是从右到左。查看plotly文档,有一个示例,但是这是在graph_objects下,并且并非所有相同的功能都可用。

python plotly visualization icicle-diagram
1个回答
0
投票

他们的 docs 中有一个垂直方向的示例:

import plotly.graph_objects as go
import pandas as pd

df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/96c0bd/sunburst-coffee-flavors-complete.csv')

fig = go.Figure(
    go.Icicle(
        ids = df.ids,
        labels = df.labels,
        parents = df.parents,
        root_color="lightgrey",
        tiling = dict(
            orientation='v',
            flip='y'
        )
    )
)
fig.update_layout(margin = dict(t=50, l=25, r=25, b=25))
fig.show()

© www.soinside.com 2019 - 2024. All rights reserved.