我正在尝试使用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() 我怎么解决这个问题?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在使用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()
请根据你的具体需求选择合适的方法转换日期数据,并据此调整颜色编码逻辑。