Giới thiệu

Trực quan hóa dữ liệu không gian địa lý bằng Python

Mary van Valkenburg

Data Science Program Manager, Nashville Software School

Vị trí

  • Dịch tả bùng phát ở London năm 1854
  • Hơn 600 ca tử vong

đám mây miasma

Trực quan hóa dữ liệu không gian địa lý bằng Python

Bản đồ chấm của Snow

Trực quan hóa dữ liệu không gian địa lý bằng Python

Bạn sẽ học gì trong khóa này

  • Cách vẽ điểm không gian địa lý bằng scatterplot
  • Cách vẽ hình học với geopandas
  • Cách tạo GeoDataFrame từ DataFrame
  • Cách nối không gian các tập dữ liệu
  • Cách thêm bản đồ đường phố vào biểu đồ
  • Khi nào và cách tạo choropleth
Trực quan hóa dữ liệu không gian địa lý bằng Python

Kinh độ và vĩ độ

biểu đồ phân tán chiều cao cha và con trai

trái đất với lưới kinh độ và vĩ độ

Trực quan hóa dữ liệu không gian địa lý bằng Python
plt.scatter(schools.Longitude, 
            schools.Latitude, 
            c = 'darkgreen', 
            marker = 'p')
plt.show()

biểu đồ phân tán đơn giản vị trí các trường học

plt.scatter(schools.Longitude, schools.Latitude, 
            c = 'darkgreen', marker = 'p')
plt.xlabel('Longitude')
plt.ylabel('Latitude')
plt.title('Nashville Public Schools')
plt.grid()
plt.show()

biểu đồ phân tán vị trí trường học kèm nhãn, tiêu đề, lưới

Trực quan hóa dữ liệu không gian địa lý bằng Python

Trích xuất kinh độ và vĩ độ

bus_stops.head()
Stop ID    StopName       Location
4431      MCC5_11    (36.16659, -86.781996)
588       CHA7AWN    (36.165, -86.78406)
590       CHA8AWN    (36.164393, -86.785451)
541       CXONGULC   (36.162249, -86.790464)
5231      7AVUNISM   (36.163822, -86.783791)

Trực quan hóa dữ liệu không gian địa lý bằng Python

Trích xuất kinh độ và vĩ độ

bus_stops['lat'] = [loc[0] for loc in bus_stops.Location]
bus_stops['lng'] = [loc[1] for loc in bus_stops.Location]
bus_stops.head()
Stop ID    StopName  Location                  lat         lng
4431      MCC5_11   (36.16659, -86.781996)    36.16659    -86.781996    
588       CHA7AWN  (36.165, -86.78406)        36.165      -86.78406
590       CHA8AWN  (36.164393, -86.785451)    36.164393   -86.785451
541       CXONGULC  (36.162249, -86.790464)   36.162249   -86.790464
5231      7AVUNISM  (36.163822, -86.783791)   36.163822   -86.783791

Trực quan hóa dữ liệu không gian địa lý bằng Python

Trích xuất lng và lat bằng biểu thức chính quy

bus_stops2.head()
Stop ID        Location            
4431       MCC - BAY 11\nNashville, TN\n(36.16659, -86.78199)
588        CHARLOTTE AVE\nNashville, TN\n(36.165, -86.78406)
590        CHARLOTTE AV\nNashville, TN\n(36.164393, -86.785451)
541        CHARLOTTE\nNashville, TN\n(36.162249, -86.790464)
5231       Nashville, TN\n(36.163822, -86.783791)
Trực quan hóa dữ liệu không gian địa lý bằng Python

Trích xuất lng và lat bằng biểu thức chính quy

lat_lng_pattern = re.compile(r'\((.*),\s*(.*)\)', flags=re.MULTILINE)
def extract_lat_lng(address):
    try:
        lat_lng_match = lat_lng_pattern.search(address)
        lat = float(lat_lng_match.group(1))
        lng = float(lat_lng_match.group(2))
        return (lat, lng)
    except:
        return (np.NaN, np.NaN)
lat_lngs = [extract_lat_lng(location)for location in \
           bus_stops2.loc[:, 'Location']]
bus_stops2['lat'] = [lat for lat, lng in lat_lngs]
bus_stops2['lng'] = [lng for lat, lng in lat_lngs]

Trực quan hóa dữ liệu không gian địa lý bằng Python

Dữ liệu mở Nashville

ảnh chụp nashville.data.gov

đầu gà khổng lồ

Trực quan hóa dữ liệu không gian địa lý bằng Python

Cùng luyện tập nào!

Trực quan hóa dữ liệu không gian địa lý bằng Python

Preparing Video For Download...