我正在学习使用PyPopt Excel并与下面的设计问题进行斗争:在刻面图中,每个子情节重复轴标题(在示例案例中的花瓣宽度(cm))。有没有一种方法可以用PyPopt Excel获得刻面图上所有子情节的单轴标签?
谢谢,迈克尔
最小示例:

from sklearn.datasets import load_iris
import plotly.express as px
import pandas as pd
import numpy as np

# import iris-data
iris = load_iris()
df= pd.DataFrame(data= np.c_[iris['data'], iris['target']], columns= iris['feature_names'] + ['target'])
df['species'] = pd.Categorical.from_codes(iris.target, iris.target_names)

# plot using pyplot.express
fig = px.bar(df, x="sepal length (cm)", y="petal width (cm)", color = 'petal length (cm)', facet_row="species")
fig.show()

python - 绘图表达面图中的单轴标题-LMLPHP

最佳答案

谢谢@vestland帮了不少忙!
我根据你的答案想出了一个更灵活的设计方案:
首先我需要删除所有子块轴:

for axis in fig.layout:
    if type(fig.layout[axis]) == go.layout.YAxis:
        fig.layout[axis].title.text = ''

下一步是添加注释而不是轴,因为布局中的yAxy属性总是修改一个轴的缩放并弄乱绘图。搜索注释时,我找到了一个link如何添加自定义轴。xref=“paper”和yref=“paper”需要独立于子批次放置标签。
fig.update_layout(
    # keep the original annotations and add a list of new annotations:
    annotations = list(fig.layout.annotations) +
    [go.layout.Annotation(
            x=-0.07,
            y=0.5,
            font=dict(
                size=14
            ),
            showarrow=False,
            text="Custom y-axis title",
            textangle=-90,
            xref="paper",
            yref="paper"
        )
    ]
)

python - 绘图表达面图中的单轴标题-LMLPHP

关于python - 绘图表达面图中的单轴标题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58167028/

10-12 13:58