python - 在 python 中使用 plotly 和 ipywidgets 的交互式 Choropleth
问题描述
我正在尝试使用 Plotly 和 ipywidgets 为头部看起来如下所示的数据帧创建一个交互式 choropleth。
该图汇总了每个县数据框中所有可用日期的值。
我想使用下拉菜单过滤特定日期的值并绘制与该日期对应的值。
import matplotlib.pyplot as plt
from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets
from plotly import *
import plotly.figure_factory as ff
import plotly.graph_objects as go
date = widgets.Dropdown(
options=['All'] + Data1.date.unique().tolist(),
value='All',
description='Date:',
)
# date = Data1['date'][1] # If I use this instead of the widget defined above, the code works (at the cost of interactivity)
def func(date):
values = Data1[Data1['date']== date]['Infected'].tolist()
fips = Data1[Data1['date']== date]['Fips'].tolist()
colorscale = [
'rgb(193, 193, 193)',
'rgb(239,239,239)',
'rgb(195, 196, 222)',
'rgb(144,148,194)',
'rgb(101,104,168)',
'rgb(65, 53, 132)'
]
fig = ff.create_choropleth(
fips=fips, values=values, scope=['IL'],
binning_endpoints=[14348, 63983, 134827, 426762, 2081313], colorscale=colorscale,
county_outline={'color': 'rgb(255,255,255)', 'width': 0.5}, round_legend_values=True,
legend_title='Infected cases by County', title='Illinois State'
)
fig.layout.template = None
fig.show()
interactive(func, date= date)
我可以使用此代码获取下拉菜单,但它不打印绘图。
或者,我尝试对日期进行硬编码(在代码中注释),它确实返回了特定日期的图,但失去了交互性。
有人可以帮我获得可以让用户从下拉菜单中选择日期并相应地绘制等值线的情节吗?
解决方案
推荐阅读
- java - 我可以使用 ajax 将 .zip 文件下载到浏览器吗?
- c++builder - 除非鼠标在窗口中,否则不会为某些消息触发 TIdTCPServer OnExecute
- rest - 如何将凭据发送到 vCenter REST api
- javascript - HTML 表单目标 iframe 和 iframe onreadystatechange 事件未正常工作
- javascript - 只需要 Promise 同步返回,而不是使用 '.then' 时的值
- c - 从字节检查偶校验
- python - 使用 Python 和 Regex 从 JSON 中的文本中删除双引号
- java - RandomAccessFile 在特定行修改字符串
- pentaho - 如何使用 Pentaho 报表设计器在不同的子报表之间共享查询数据?
- c++ - Qt5 未注册触摸事件