- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的问题是郊区在 Folium map 上显示的颜色不正确。例如,Dandenong 和 Frankston 应该用最深的颜色着色,因为它们在数据框中的计数最高,但它们用较浅的颜色着色。
数据框缺少一些郊区。那些郊区被涂上了最深的颜色。
另一个问题是 csv 的所有郊区都是大写的,但 geojson 混合了大小写,例如“Frankston”、“St Kilda”或“McKinnon”。如果 choropleth 代码不关心大小写,那将会很有帮助。我可以更改数据框中的文本以制作“FRANKSTON”、“Frankston”和“ST KILDA”、“St Kilda”,但是“MCKINNON”到“McKinnon”有点棘手。
创建数据框
import csv
import pandas as pd
csv_path='Data_tables_Criminal_Incidents_Visualisation_year_ending_June_2018.csv'
df=pd.read_csv(csv_path)
with open(csv_path, 'r') as csvfile:
# creating a csv reader object
csvreader = csv.reader(csvfile)
# create a list of headings from the first row of the csv file
headings = next(csvreader)
# create a dictionary, where keys are Suburb/Town Name and values are number of occurences
# index 2 of the headings list are the suburbs
neighborhood_dict = df[headings[2]].value_counts().to_dict()
# make first letter uppercase eg St Kilda
neighborhood_dict = dict((k.title(), v) for k, v in neighborhood_dict.items())
# make neighborhood_list from neighborhood_dict
neighborhood_list=[]
for key, value in neighborhood_dict.items():
temp = [key,value]
neighborhood_list.append(temp)
# make dataframe from neighborhood_list
df = pd.DataFrame(neighborhood_list, columns=['Suburb','Count'])
print(df.to_string())
创建 map
import folium
world_map = folium.Map(
location=[-38.292102, 144.727880],
zoom_start=6,
tiles='openstreetmap'
)
world_map.choropleth(
geo_data='vic.geojson',
data=df,
columns=['Suburb','Count'],
key_on='feature.properties.Suburb_Name',
fill_color='YlOrRd',
fill_opacity=0.7,
line_opacity=0.2,
legend_name='Crime Rate in Victoria'
)
world_map.save('index.html')
最佳答案
我想通了。缺失值是灰色的,图例是用我选择的间隔定制的。清理 geojson,删除尾随空格,并使所有郊区名称大写解决了很多问题。
创建字典
import pandas as pd
import csv
csv_path='Data_tables_Criminal_Incidents_Visualisation_year_ending_June_2018.csv'
df=pd.read_csv(csv_path)
# sum the number of incidents recorded for each suburb
df=df.groupby(['Suburb/Town Name'])['Incidents Recorded'].agg(
# make the numbers numeric otherwise it just concatenates strings
lambda x: pd.to_numeric(x, errors='coerce').sum()
)
# create a dictionary, where keys are Suburb/Town Name and values are number of incidents
suburb_dict = df.to_dict()
样式函数
def style_function(feature):
suburb = suburb_dict.get(feature['properties']['Suburb_Name'])
return {
'fillColor': '#gray' if suburb is None else colormap(suburb),
'fillOpacity': 0.6,
#borders
'weight': 0.2,
}
叶子 map
import folium
world_map = folium.Map(
location=[-38.292102, 144.727880],
zoom_start=6,
tiles='openstreetmap'
)
folium.GeoJson(
data = 'vic_for_crime_2018.geojson',
style_function = style_function
).add_to(world_map)
色图
import branca
colormap = branca.colormap.linear.YlOrRd_09.scale(0, 8500)
colormap = colormap.to_step(index=[0, 1000, 3000, 5000, 8500])
colormap.caption = 'Incidents of Crime in Victoria (year ending June 2018)'
colormap.add_to(world_map)
world_map.save('vic_final.html')
关于Python - Folium Choropleth map - 颜色不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52911688/
以下代码根据层次聚类创建 Choropleth map (使用 hclust() 和 cutree() ): library(plotly) library(cluster) hc %
我想使用plotly和Choroplet根据某些国家的人口流动情况显示世界地图,但它不起作用,我不明白为什么。 This is my pandas table 这段代码应该绘制图表: import p
我昨天问了一个问题,但我猜是代码太多或不清楚,所以我已将其删除,并将尝试使我的问题更清楚。 我有一个包含世界上所有国家/地区的数据框 (df),它看起来像这样: Country CountryCode
我正在使用 Potly Dashboard 构建仪表板。我使用的是深色引导主题,因此我不需要白色背景。 但是,我的 map 现在看起来像这样: 生成它的代码如下所示: trace_map = html
我正在使用 Bostock's Quantile Choropleth 的变体. 我已经成功地缩放了投影并整合了我自己的数据。我目前还在过滤 json 县数据,以仅包括以州 ID 48 开头的县 ID
我尝试按照有关 leaflet 上的图层控件的教程进行操作,但无法使其按我想要的方式运行。我希望有 2 个不同的 choropleth 层可供用户在图层控件中选择,一次显示一个。但是,当我取消选中 h
我正在关注这个例子: http://bl.ocks.org/ElefHead/ebff082d41ef8b9658059c408096f782 但是,我不明白为什么我只画了 3 个东西(县、州、州边界
我根据人口使用传单制作了等值线。 Leaflet 中是否有一个属性假设 5 个地方的人口恰好为 10,然后根本不给它们着色?没有填充之类的东西? 我也无法理解为什么我设置成奶油色的时候还有深蓝色。 这
我正在使用 Bostock's Quantile Choropleth 的变体. 我已经成功缩放了投影并集成了我自己的数据。我目前还在过滤 json 县数据,仅包含以州 ID 48 开头的县 ID。
我正在尝试使用 folium 创建等值线图,按照此处的示例:https://pypi.python.org/pypi/folium .目标是制作美国失业率的等值线图,但当我打开 map 时,美国各州没
我正在尝试使用从此处下载的 geojson 数据文件绘制英国的等值线图:https://data.gov.uk/dataset/regions-december-2016-full-extent-bo
编辑** 这里是一个链接 my website .传单测试一页是目前有效的传单测试页 2 是当我尝试添加交互功能时。 我很难让我的交互式 map 真正具有交互性。我正在绘制宾夕法尼亚州各县水井数量的
我正在努力解决我在使用 folium choropleth map 时遇到的问题。我正在可视化 COVID-19 病例,并尝试根据它们的分位数隶属关系绘制颜色。然而,不幸的是,传说重叠了。因此,我想知
在 R 中,我可以像这样移动阿拉斯加和夏威夷: https://www.storybench.org/how-to-shift-alaska-and-hawaii-below-the-lower-48
我有一个关于 folium 中的 Choropleth 函数的问题。 state_data = pd.read_csv('data.csv') mssp = folium.Map() folium.C
我正在用 geopandas 制作等值线图。我想绘制具有两层边界的 map :较薄的用于民族国家(geopandas 默认),较厚的用于各种经济社区。这在地理 Pandas 中可行吗? 下面是一个例子
我很抱歉,因为我很确定这是一个基本问题。我想要做的就是使用 maps 包在 R 中创建一个非常简单的等值线图。这是我第一次尝试在 R 中映射任何数据。 我的地理位置是包括哥伦比亚特区在内的 48 个州
我有以下 Pandas 数据框 df,如下所示: import pandas as pd df = pd.DataFrame({'state' : ['NY', 'CA', 'FL', 'NJ', '
我想删除 ggplot 中生成的等值线区域之间的线。我的问题是由一张非常大的 map 引起的,其中包含非常非常小的区域(人口普查区 block 组),这些区域数量如此之多,以至于鉴于边界的密度,不可能
我已经在 Folium 中使用 Choropleth 和 Cluster 标记图工作了一段时间(非常棒)。我的问题是是否可以将它们组合在一张图中,这样我就可以看到一个变量对另一个变量的影响有多大。我可
我是一名优秀的程序员,十分优秀!