Plotly Choropleth地图未显示颜色问题求助
解决Choropleth地图仅显示轮廓无颜色的问题
我来帮你排查这个问题,地图只显示地球轮廓没颜色,大概率是以下几个原因导致的,咱们一步步解决:
必须指定
locationmode参数
Plotly的Choropleth需要明确知道你传入的locations是什么格式的代码,默认值可能和你的数据不匹配。比如你用的是ISO-3字母国家代码(如USA、DEU),就需要加上locationmode='ISO-3';如果是国家全称(如'China'、'United States'),就用locationmode='country names'。这是最常见的问题,你的代码里刚好缺了这个关键参数!检查
locations和z列的数据有效性- 先确认
df3['Code']里的代码格式和你指定的locationmode完全匹配,比如不要混着用ISO-2和ISO-3代码,也不要有拼写错误(比如把'UK'写成'United Kingdom'如果用国家名称模式的话)。 - 再检查
df3['Power Consumption KWH']是否是数值型数据,有没有大量空值或非数值内容。如果这列数据无效,地图也无法渲染颜色,可以用df3['Power Consumption KWH'].isnull().sum()查看空值数量,用df3['Power Consumption KWH'].dtype确认数据类型。
- 先确认
添加颜色配置辅助调试(可选)
有时候数据范围特殊导致颜色不明显,你可以手动指定颜色刻度和颜色条,让效果更直观。
修正后的完整代码示例
import plotly.graph_objects as go from plotly.offline import iplot # 根据你的实际代码格式修改locationmode data2 = dict( type='choropleth', locations=df3['Code'], z=df3['Power Consumption KWH'], locationmode='ISO-3', # 替换成你实际的代码类型:'ISO-3'/'country names'/'USA-states' colorbar=dict(title='Power Consumption (KWH)'), # 显示颜色条标题 colorscale='Viridis' # 选用辨识度高的颜色刻度 ) layout2 = dict( title='2014 Global Power Consumption', geo=dict( showframe=False, projection={'type': 'natural earth'} ) ) choromap2 = go.Figure(data=[data2], layout=layout2) iplot(choromap2)
如果还是不行,你可以先打印df3[['Code', 'Power Consumption KWH']].head()看看前几行数据是否符合预期,这样更容易定位问题~
内容的提问来源于stack exchange,提问作者Vũ Giang
相关产品推荐
相关产品推荐

