尽管语法看似正确,但 Plotly Express 条形图的 text_auto 参数对我不起作用。我同时使用 Jupyter Notebook 和 Eclipse,问题仍然存在。 Plotly 版本 5.19。
我正在尝试使用 Ploty Express 创建条形图。我想显示一家理论上的披萨店今年的最高订单。以下是我正在尝试的: ( https://i.sstatic.net/29ErcqM6.jpg ) 这是输出: ( https://i.sstatic.net/IY3wtuAW.jpg )
我在 SSMS 中运行了查询并确认这些是正确的订单号和最大订单。
但是,我会x 轴的格式如下: ( https://i.sstatic.net/pBpL19Ef.png )
非常感谢任何和所有帮助。
问题不在于
text_auto
参数,而在于你的 x 轴数据类型。看起来 Plotly 将你的订单号(应该被视为离散类别)解释为数字。因此,它试图创建一个连续的数值轴,这对于你的情况来说没有意义。
你有两种解决方案:
1. 将订单号转换为字符串:
在创建 Plotly 图表之前,将你的
order_id
列转换为字符串类型。这将强制 Plotly 将它们视为离散类别。
df['order_id'] = df['order_id'].astype(str)
px.bar(df, x='order_id', y='total_order_amount', text_auto=True)
2. 使用
tickmode='array'
和
tickvals
参数:
你可以明确地告诉 Plotly 使用哪些值作为 x 轴刻度。
fig = px.bar(df, x='order_id', y='total_order_amount', text_auto=True)
fig.update_xaxes(tickmode='array', tickvals=df['order_id'])
fig.show()
这两种方法都可以解决你的问题,并使
text_auto
参数按预期工作。选择最适合你的方法。