Streamlit 应用程序的 Plotly 条形图中 Y 轴刻度未正确显示

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

我有一个函数

free_vs_paid(df_clean)
可以生成
Plotly bar chart
来比较不同类别的免费和付费应用程序的数量。在
Jupyter Notebook
中,图表正确显示 y 轴刻度 (1, 10, 100,1000),如下所示。

但是。当我将相同的功能集成到我的 Streamlit 应用程序中时,y 轴刻度显示为图像中所示的中间数字。

这是我的代码的相关部分:

import pandas as pd
import plotly.express as px

def free_vs_paid(df_clean):
    df_free_vs_paid = df_clean.groupby(["Category","Type"], as_index=False).agg({"App": pd.Series.count})
    df_free_vs_paid.sort_values("App", ascending=False, inplace=True)

    freevsPaid_bar = px.bar(df_free_vs_paid,
                   x="Category",
                   y="App",
                   color="Type",
                   title="Free vs Paid Apps by Category",
                   barmode="group")

    freevsPaid_bar .update_layout(xaxis_title='Category',
                        yaxis_title='Number of Apps',
                        xaxis={'categoryorder':'total descending'},
                        yaxis=dict(type='log'))

    return freevsPaid_bar 

如何确保 y 轴刻度在 Streamlit 应用程序中正确显示,就像在 Jupyter Notebook 中一样?

提前感谢您的帮助!

python pandas plotly streamlit
1个回答
0
投票

我已经通过更改 yaxis 解决了这个问题。但是有没有更好的解决方案呢?

   yaxis={'type': 'log',
         'tickvals': [1, 10, 100, 1000],
         ticktext': ['1', '10', '100', '1000']})
© www.soinside.com 2019 - 2024. All rights reserved.