【发布时间】:2019-03-13 17:59:55
【问题描述】:
起始码:https://docs.bokeh.org/en/latest/docs/gallery/texas.html
我正在尝试用我在 csv 文件中的不同百分比替换失业率。 csv 列是县名和浓度。
我对县数据使用与示例中相同的调用方法。只是为百分比值提取不同的数据。
我尝试将 csv 转换为字典,然后查找县名值并使用与起始代码相同的格式返回相应的浓度。我尝试过内连接、外连接、附加。我在这里错过了什么?
from bokeh.io import show
from bokeh.models import LogColorMapper
from bokeh.palettes import Viridis6 as palette
from bokeh.plotting import figure
from bokeh.sampledata.us_counties import data as counties
import pandas as pd
import csv
#with open('resources/concentration.csv', mode='r') as infile:
#reader = csv.reader(infile)
#with open('concentration_new.csv', mode='w') as outfile:
#writer = csv.writer(outfile)
#mydict = {rows[0]:rows[1] for rows in reader}
#d_1_2= dict(list(counties.items()) + list(mydict.items()))
pharmacy_concentration = []
with open('resources/unemployment.csv', mode = 'r') as infile:
reader = csv.reader(infile, delimiter = ',', quotechar = ' ') # remove
last attribute if you dont have '"' in your csv file
for row in reader:
name, concentration = row
pharmacy_concentration[name] = concentration
counties = {
code: county for code, county in counties.items() if county["state"] ==
"tx"
}
palette.reverse()
county_xs = [county["lons"] for county in counties.values()]
county_ys = [county["lats"] for county in counties.values()]
county_names = [county['name'] for county in counties.values()]
#this is the line I am trying to have pull the corresponding value for the correct county
#county_rates = [d_1_2['concentration'] for county in counties.values()]
color_mapper = LogColorMapper(palette=palette)
data=dict(
x=county_xs,
y=county_ys,
name=county_names,
#rate=county_rates,
)
TOOLS = "pan,wheel_zoom,reset,hover,save"
p = figure(
title="Texas Pharmacy Concentration", tools=TOOLS,
x_axis_location=None, y_axis_location=None,
tooltips=[
("Name", "@name"), ("Pharmacy Concentration", "@rate%"),
(" (Long, Lat)", "($x, $y)")])
p.grid.grid_line_color = None
p.hover.point_policy = "follow_mouse"
p.patches('x', 'y', source=data,
fill_color={'field': 'rate', 'transform': color_mapper},
fill_alpha=0.7, line_color="white", line_width=0.5)
show(p)
【问题讨论】:
标签: python csv dictionary jupyter-notebook bokeh