You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plotly柱状图异常修复:空柱与错误线性增长问题

问题描述

使用Python的plotly库绘制柱状图时遇到两个问题:

  • 图表显示数据呈线性增长,与实际数据不符
  • 第一个数据点(数值5585)被渲染为空柱

原代码

import plotly.graph_objects as go
fig = go.Figure()

x = df_quaterly_results.index 
y = df_quaterly_results[df_quaterly_results.columns[0]]  # Sales Columns

trace_name = 'QoQ Sales'

fig.add_trace(go.Bar(x=x, y=y, name=trace_name))

plot_title = 'QoQ Sales'

fig.update_layout(
        title=plot_title,
        xaxis_title='Quarter',
        yaxis_title='Rupees in Cr.')

# pyo.plot(fig, filename="temp-plot.html")
fig.show()

样本数据框

QuarterSales
Jun 20215585
Sep 20217096
Dec 20218527
Mar 20227893
Jun 20228607
Sep 20228458

注:Quarter列为数据框的索引。


解决方案

问题根源是索引列Quarter被自动识别为日期时间类型,导致x轴按时间线性排列且首个日期存在解析异常;同时需确认Sales列是数值类型,修复步骤如下:

1. 确保Sales列为数值类型

避免因非数值类型导致渲染错误,强制转换列类型:

import pandas as pd
df_quaterly_results['Sales'] = pd.to_numeric(df_quaterly_results['Sales'], errors='coerce')

2. 将索引转为字符串类型

阻止Plotly自动解析日期时间轴,保持原始季度显示:

x = df_quaterly_results.index.astype(str)

3. 完整修复代码

import plotly.graph_objects as go
import pandas as pd

# 预处理数据类型
df_quaterly_results['Sales'] = pd.to_numeric(df_quaterly_results['Sales'], errors='coerce')
x = df_quaterly_results.index.astype(str)
y = df_quaterly_results['Sales']  # 直接指定列名,避免依赖列顺序

fig = go.Figure()
fig.add_trace(go.Bar(x=x, y=y, name='QoQ Sales'))

fig.update_layout(
    title='QoQ Sales',
    xaxis_title='Quarter',
    yaxis_title='Rupees in Cr.'
)

fig.show()

额外检查点

  • 若仍有空柱,通过df_quaterly_results.head()确认首行数据无缺失值
  • 优先使用列名df_quaterly_results['Sales']而非df_quaterly_results.columns[0],避免列顺序变动引发错误

内容的提问来源于stack exchange,提问作者RSW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 10:35:12