开发者社区 问答 正文

如何根据不同的日期更改3D散点图的颜色?

我正在尝试使用plotly绘制3D散点图。我想要在x,y轴上绘制“纬度”和“经度”,在z轴上绘制“温度”。我已经成功地绘制了以上内容。

我想根据“日期”列更改点的颜色。在这里,我正面临这个问题。我收到如下错误:

KeyError:(Timestamp('2019-09-24 00:00:00'),``,'')

import plotly.express as px

fig = px.scatter_3d(df3_Agg, x='Latitude', y='Longitude', z='Temperature', color = "Date")

fig.show() 我怎么解决这个问题?

展开
收起
被纵养的懒猫 2019-09-30 14:56:59 469 分享 版权
阿里云 AI 助理回答

在使用Plotly Express绘制3D散点图时,如果直接将日期作为颜色编码的变量,可能会遇到问题,因为Plotly期望颜色编码变量是分类的或者是连续数值型的。日期时间对象可能不会直接被识别和处理。为了解决这个问题,你可以尝试将“日期”列转换为一个适合的颜色编码格式,比如将其转换为字符串或者提取日期中的某些特征(如星期几、月份等),具体取决于你希望如何根据日期来着色。

这里是一个简单的示例,展示如何将日期转换为字符串形式,以便于用作颜色编码:

import pandas as pd
import plotly.express as px

# 假设df3_Agg是你的DataFrame
# 将'Date'列转换为字符串格式,例如使用日期的年月日
df3_Agg['Date_str'] = df3_Agg['Date'].dt.strftime('%Y-%m-%d')

fig = px.scatter_3d(df3_Agg, x='Latitude', y='Longitude', z='Temperature', color='Date_str')
fig.show()

如果你想要更细致地利用日期信息,比如按月份或季度着色,你可以提取这些特定的信息:

# 按月份着色
df3_Agg['Month'] = df3_Agg['Date'].dt.month_name()

# 或者按季度
# df3_Agg['Quarter'] = df3_Agg['Date'].dt.quarter

fig = px.scatter_3d(df3_Agg, x='Latitude', y='Longitude', z='Temperature', color='Month')
fig.show()

请根据你的具体需求选择合适的方法转换日期数据,并据此调整颜色编码逻辑。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答地址: