首页 > 解决方案 > 使用 streamlit 绘图时,xticklabels 不会出现在图中

问题描述

您好,我正在尝试在 streamlit 中使用 seaborn 绘制数据框。xlabel 是带有文章编号的字符串对象,例如“655458”、“898555”等。但是当我绘制 ylabels 打印正确但 xlabel 只显示为 1、2、3、4 等。我尝试搜索解决方案为此在互联网上,但找不到任何。这是我要绘制的列的描述:

x 轴

x['Artikelnummer'].head()

0    6075150.0
1    6075304.0
2    6075330.0
3    6075355.0
4    6075370.0
Name: Artikelnummer, dtype: object

y轴:

y['Presskraft-Gesamt'].head()

0     68.0
1     79.0
2    115.0
3     60.0
4     65.0
Name: Presskraft-Gesamt, dtype: float64

当我使用 streamlit 绘制数据时。我得到下图。

if st.checkbox('Plot data for each Artikeltyp'):
    data_load_state = st.text(f"Plotting data for {artikel_typ}...")
    temp = temp.astype({'Artikelnummer':str})
    
    sns.set_style(style="darkgrid")
        
    fig, axes = plt.subplots(1,1, sharex=True)
    fig.suptitle(f"Presskraft Auswertung für Artikeltyp - {artikel_typ}")
    
    axes.set_title(f"Gesamt Presskraft")
    sns.lineplot(ax=axes, data=temp, x='Artikelnummer', y='Presskraft-Gesamt')
    
    #print(list(axes.xaxis.get_majorticklabels()))
    axes.set_xticklabels(axes.xaxis.get_majorticklabels(), rotation=45)
    #plt.setp(axes.get_xticklabels(), visible=False, rotation=25)
    axes.set_ylabel("Presskraft-Gesamt")
    print(list(axes.xaxis.get_majorticklabels()))
    st.plotly_chart(fig, use_container_width=True, figsize=(12,8))

在此处输入图像描述

可以清楚地看到,xlabels 没有按照列中的数据显示。我会很感激这里的一些建议:)谢谢!

标签: pythonmatplotlibseabornstreamlit

解决方案


推荐阅读