簡體   English   中英

等值線圖未顯示

[英]choropleth map not showing

我是 Python 數據科學的新手,這是我在這里的第一個幫助請求(然后為一些錯誤提前道歉)。 需要您的支持才能了解為什么未顯示此(基於簡單數據框的)區域分布圖。 閱讀了很多關於這個論點的討論,然后我驗證了所有主要內容:地區名稱和 NAAM(在 geojson 中)都在 str 等中 - 但我仍然卡住了,我看不到地圖(只有圖例)。 讓我知道是否需要更多信息,您可以在下面找到代碼:在 [9] 中:

df_clo=dfrc.groupby(['District']).mean()
df_clo.reset_index(inplace=True)
df_clo=df_clo[['District','Rent']]
df_clo['District'] = df_clo['District'].str.upper()
df_clo

出[9]:

District    Rent
0   BINNENSTAD  1792.281250
1   NOORDOOST   1763.558824
2   OOST    1739.186047
3   ZUID    1562.142857
4   ZUIDWEST    1397.689655

在 [10] 中:

latitude = 52.09083
longitude = 5.12222
print('The geograpical coordinate of Utrecht are {}, {}.'.format(latitude, longitude))# create map of Utrecht using latitude and longitude values
utrecht_geo = r'https://raw.githubusercontent.com/umbesallfi/Coursera_Capstone/master/wijk_.geojson'
# create a numpy array of length 6 and has linear spacing from the minium total immigration to the maximum total immigration
threshold_scale = np.linspace(df_clo['Rent'].min(),
                              df_clo['Rent'].max(),
                              6, dtype=int)
threshold_scale = threshold_scale.tolist() # change the numpy array to a list
threshold_scale[-1] = threshold_scale[-1] + 1 # make sure that the last value of the list is greater than the maximum immigration
# let Folium determine the scale.
map_utr = folium.Map(location=[latitude, longitude], zoom_start=2, tiles='Mapbox Bright')
map_utr.choropleth(
    geo_data=utrecht_geo,
    data=df_clo,
    columns=['District', 'Rent'],
    key_on='feature.properties.NAAM',
    threshold_scale=threshold_scale,
    fill_color='YlOrRd', 
    fill_opacity=0.7, 
    line_opacity=0.2,
    legend_name='Price in Utrecht by Wijk',
    reset=True
)
map_utr

這里地圖輸出

地區名稱不會以大寫字母形式存儲在您的wijk_.geojson文件中。 因此,刪除此行應該就足夠了:

df_clo['District'] = df_clo['District'].str.upper()

我的代碼:

import folium
import pandas as pd
import numpy as np

m = folium.Map(location=[52.09083, 5.12222],
               zoom_start=12,
               control_scale=True)

df_clo = pd.DataFrame({'District':['Binnenstad','Noordoost','Oost','Zuid','Zuidwest'],
                       'Rent':[1792.281250,
                               1763.558824,
                               1739.186047,
                               1562.142857,
                               1397.689655]})

threshold_scale = np.linspace(df_clo['Rent'].min(),
                              df_clo['Rent'].max(),
                              6, dtype=int)
threshold_scale = threshold_scale.tolist() # change the numpy array to a list
threshold_scale[-1] = threshold_scale[-1] + 1 # make sure that the last value of the list is greater than the maximum immigration

utrecht_geo = 'wijk_.geojson'

folium.Choropleth(geo_data=utrecht_geo,
                  name='choropleth',
                  data=df_clo,
                  columns=['District', 'Rent'],
                  key_on='feature.properties.NAAM',
                  threshold_scale=threshold_scale,
                  fill_color='YlOrRd',
                  fill_opacity=0.7,
                  line_opacity=0.2,
                  legend_name='Price in Utrecht by Wijk',).add_to(m)

folium.LayerControl().add_to(m)

m

返回這張地圖:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM