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

使用pyspark绘制散点图时如何将x轴数值型日期转为标准日期格式

你遇到的问题是数值型date列为纳秒级Unix时间戳,matplotlib默认按数值渲染就会出现科学计数法显示,可通过以下两种方案实现标准日期格式展示:

方案1:提前转换date列类型(推荐,适配性最好)

先将date列转换为pandas标准datetime格式,后续绘图会自动适配日期显示:

import pandas as pd
import matplotlib.pyplot as plt

# 转换数值型date列为datetime格式,默认自动识别纳秒时间戳
data_pd['date'] = pd.to_datetime(data_pd['date'])

# 原有绘图逻辑保持不变
c1 = data_pd[data_pd.cluster == 0]
c2 = data_pd[data_pd.cluster == 1]
c3 = data_pd[data_pd.cluster == 2]
c4 = data_pd[data_pd.cluster == 3]
c5 = data_pd[data_pd.cluster == 4]
plt.scatter(c1.date, c1['totValue'],color='green')
plt.scatter(c2.date, c2['totValue'],color='blue')
plt.scatter(c3.date, c3['totValue'],color='red')
plt.scatter(c4.date, c4['totValue'],color='pink')
plt.scatter(c5.date, c5['totValue'],color='yellow')
plt.xlabel('date')
plt.ylabel('totValue')

# 可选配置:旋转x轴标签避免重叠,调整布局防止标签被截断
plt.xticks(rotation=45)
plt.tight_layout()

plt.show()

方案2:不修改原数据,直接配置x轴格式化器

如果不想改动原始数据集,可通过matplotlib的轴格式化器直接转换显示格式:

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

# 原有绘图逻辑保持不变
c1 = data_pd[data_pd.cluster == 0]
c2 = data_pd[data_pd.cluster == 1]
c3 = data_pd[data_pd.cluster == 2]
c4 = data_pd[data_pd.cluster == 3]
c5 = data_pd[data_pd.cluster == 4]
plt.scatter(c1.date, c1['totValue'],color='green')
plt.scatter(c2.date, c2['totValue'],color='blue')
plt.scatter(c3.date, c3['totValue'],color='red')
plt.scatter(c4.date, c4['totValue'],color='pink')
plt.scatter(c5.date, c5['totValue'],color='yellow')
plt.xlabel('date')
plt.ylabel('totValue')

# 新增x轴日期格式配置
ax = plt.gca()
# 自定义格式化函数,将数值时间戳转为%Y-%m-%d格式字符串
ax.xaxis.set_major_formatter(lambda x, pos: pd.to_datetime(x).strftime('%Y-%m-%d'))
# 可选:设置日期间隔,比如每7天显示一个刻度,避免标签过密
ax.xaxis.set_major_locator(mdates.DayLocator(interval=7))
# 可选配置:旋转x轴标签避免重叠,调整布局防止标签被截断
plt.xticks(rotation=45)
plt.tight_layout()

plt.show()

如果你的date列实际是秒级/毫秒级时间戳,转换时可指定unit参数:pd.to_datetime(data_pd['date'], unit='s') 或 pd.to_datetime(data_pd['date'], unit='ms') 即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:09:06