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

Plotly Choropleth地图添加日期滑块报sliders属性无效错误求助

故障修复说明

错误根因

  • 核心ValueError报错:你误将sliders参数嵌套到了geo配置字典中,sliders是Plotly布局的一级配置项,不属于地理图层(geo)的可配置属性,这是报错直接诱因。
  • SettingWithCopyWarning警告:你对筛选出的df_segmented直接修改列值,pandas判定该操作是在数据切片的副本上执行,存在修改不生效的潜在风险。

修正后代码

import plotly.graph_objs as go
import plotly.offline as offline
import pandas as pd

# 颜色配置
scl = [[0.0, '#ffffff'],[0.2, '#ff9999'],[0.4, '#ff4d4d'], 
       [0.6, '#ff1a1a'],[0.8, '#cc0000'],[1.0, '#4d0000']] 

data_slider = []
for year in df_total['Year'].unique():
    # 筛选后加copy()解决SettingWithCopyWarning
    df_segmented =  df_total[(df_total['Year']== year)].copy()

    for col in df_segmented.columns:
        df_segmented[col] = df_segmented[col].astype(str)

    data_each_yr = dict(
                        type='choropleth',
                        locations = df_segmented['Entity'],
                        z=df_segmented['Total Deaths'].astype(float),
                        locationmode= 'country names',
                        colorscale = scl,
                        colorbar= {'title':'# Deaths - Total Air pollution Deaths'})
    data_slider.append(data_each_yr)

steps = []
for i in range(len(data_slider)):
    step = dict(method='restyle',
                args=['visible', [False] * len(data_slider)],
                label='Year {}'.format(i + 1990))
    step['args'][1][i] = True
    steps.append(step)

sliders = [dict(active=0, pad={"t": 1}, steps=steps)]

# 修正:sliders提到layout一级配置,不再放在geo内部
layout = dict(
    title ='Global Air Pollution Deaths 1990-2020', 
    geo=dict(
        showframe=False,
        showcoastlines=False,
        projection_type='equirectangular'
    ),
    sliders=sliders
)

fig = dict(data=data_slider, layout=layout)
offline.iplot(fig)

关键修改点

  1. 筛选df_segmented时添加.copy(),消除副本修改警告
  2. 将sliders配置从geo字典中移出,作为layout的一级属性传入

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:54:00