我有一个函数free_vs_paid(df_clean)
,它生成一个Plotly bar chart
,比较不同类别的免费和付费应用程序的数量.在Jupyter Notebook
中,图表正确地显示y轴刻度(1, 10, 100,1000),如下图所示.我知道这个问题来自yaxis=dict(type='log'))
.如何让我的yaxis
更专业?
然而.当我将相同的函数集成为my Streamlit app时,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应用程序中正确显示,就像在Mystyter Notebook中一样?
Updated
我已经解决了这个问题的变化yaxis.
yaxis={'type': 'log',
'tickvals': [1, 10, 100, 1000],
ticktext': ['1', '10', '100', '1000']})
然而,有没有更好的解决办法呢?
Thank you in advance for your help!