Plotly中通过下拉菜单切换等值区域图符号系统的实现问题
Plotly 新冠疫情分级统计地图切换功能修复
核心问题排查
- 变量名不一致:创建图表时将实例赋值给
map,后续操作调用了未定义的fig变量,属于基础语法错误 - 按钮参数格式错误:
restyle方法需要修改的所有数据属性要放在同一个字典参数内,原代码将z和colorscale拆分为两个参数,导致属性更新失效 - 多处使用全角引号,不符合Python语法要求
修正后完整代码
import pandas as pd import plotly.graph_objects as go from plotly.offline import plot # 读取数据 df = pd.read_csv("covid.csv") # 初始化choropleth数据 data = dict( type='choropleth', locations = df['Name'], locationmode = 'country names', z = df['Total'], marker_line_color = 'black', marker_line_width = 0.5, colorscale = "Greens", colorbar_title = "累计确诊数" ) # 基础布局配置 layout = dict( title_text = '各国当日确诊数', title_x = 0.5, geo=dict( showframe = True, showcoastlines = True, projection_type = 'mercator' ) ) # 初始化图表对象 fig = go.Figure(data=[data], layout=layout) fig.update_geos(fitbounds="locations", visible=True) # 配置切换按钮 button1 = dict( method = "restyle", args = [{ 'z': [df["Total"]], 'colorscale': "Greens", 'colorbar.title': "累计确诊数" }], label = "累计确诊数" ) button2 = dict( method = "restyle", args = [{ 'z': [df["1M_pop"]], 'colorscale': "Reds", 'colorbar.title': "每百万人确诊数" }], label = "每百万人确诊数" ) # 更新布局添加按钮 fig.update_layout( width=1000, coloraxis_colorbar_thickness=23, updatemenus=[dict( y=1.1, x=0.275, xanchor='right', yanchor='bottom', active=0, buttons=[button1, button2] )] ) # 输出HTML文件 plot(fig, filename='covid.html')
内容的提问来源于stack exchange,提问作者Omri Mako
相关产品推荐
相关产品推荐

