我有一个函数
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 中一样?
提前感谢您的帮助!
我已经通过更改 yaxis 解决了这个问题。但是有没有更好的解决方案呢?
yaxis={'type': 'log',
'tickvals': [1, 10, 100, 1000],
ticktext': ['1', '10', '100', '1000']})