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

Bokeh datetime x_range报错:Unrecognized range input 问题求助

解决DataFrame日期转类型后堆叠条形图x轴报错的问题

嘿,这种日期转成Timestamp后绘图报错的情况我碰到好多次了,别着急,咱们一步步来解决:

第一步:确保日期列正确转换为datetime类型

首先得确认你的日期字符串确实被正确转换成了datetime类型,有时候自动识别会踩坑,建议手动指定格式避免出错:

import pandas as pd

# 替换成你的日期列名和实际日期格式,比如'%Y-%m-%d'对应'2018-02-02'这种格式
df2['date_column'] = pd.to_datetime(df2['date_column'], format='%Y-%m-%d', errors='coerce')
  • 加上errors='coerce'会把无法识别的日期转成NaT,之后可以用df2['date_column'].isna().sum()检查有没有异常值,有就删掉或者填充:
    df2 = df2.dropna(subset=['date_column'])
    
  • 验证转换结果:print(df2['date_column'].dtype)应该显示datetime64[ns],再看前几行确认日期是正确的Timestamp。

第二步:根据绘图库调整x轴处理方式

你遇到的报错看起来更像是Plotly的问题,不过我也把Matplotlib的处理方式一起列出来:

如果用Matplotlib绘制堆叠条形图

Matplotlib对datetime类型的支持比较友好,转换后直接用日期列当x轴就行,还可以自定义日期显示格式:

import matplotlib.pyplot as plt
import matplotlib.dates as mdates

# 假设你的数据已经整理好堆叠的分组列,比如按类别分组后的数值列
ax = df2.plot(kind='bar', stacked=True, x='date_column')

# 设置x轴日期显示格式,比如只显示年月日
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
# 旋转x轴标签避免重叠
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

如果用Plotly绘制堆叠条形图

Plotly有时候对Timestamp的范围识别会出问题,这时候可以把日期转成字符串格式,或者强制指定x轴类型为日期:

方法1:转成字符串格式

import plotly.express as px

# 把datetime列转成易识别的字符串格式
df2['date_str'] = df2['date_column'].dt.strftime('%Y-%m-%d')

# 绘制堆叠条形图
fig = px.bar(df2, x='date_str', y='your_value_column', color='your_category_column', barmode='stack')
fig.update_layout(xaxis_title='日期')
fig.show()

方法2:强制指定x轴为日期类型

fig = px.bar(df2, x='date_column', y='your_value_column', color='your_category_column', barmode='stack')
# 指定x轴类型为日期,并设置显示格式
fig.update_xaxes(type='date', tickformat='%Y-%m-%d')
fig.show()

最后排查小细节

  • 确认你的日期列没有重复的异常值,或者范围过大/过小的日期
  • 如果是分组后绘图,确保分组逻辑没有打乱日期的顺序

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:35:05