Thay đổi kích thước điểm đánh dấu trong cốt truyện với GeoPandas


10

Tôi có một geodataframe với các điểm và một số dữ liệu liên quan. Tôi muốn vẽ sơ đồ trên bản đồ bằng geopandas và có kích thước của các điểm tương ứng với một trong các cột trong geodataframe.

Cho đến nay tôi có mã sau đây:

base = world.plot(color='white', figsize=(20,10))
geo_df.plot(ax=base, marker='.', color='red', markersize = 
geo_df['Pop_2005'])
plt.xlim([-85, -60])
plt.ylim([-5, 12.5]);

Nhưng tôi nhận được lỗi sau: TypeError: cannot convert the series to <class 'float'>

Có ý kiến ​​gì không?


Đây có phải là tất cả các mã?
Fezter

@Fezter đó là tất cả các mã để vẽ bản đồ. Có nhiều mã hơn để xây dựng geodataframe nhưng điều đó dường như không liên quan ở đây. Có bất cứ điều gì quan trọng bị thiếu ở đây? Cảm ơn.
Juan Francisco Saldarriaga

Loại trường của Pop_2005 là gì? Là nó nổi hay int?
Fezter

3
Có thể là bạn chỉ có thể đặt một kích thước điểm đánh dấu duy nhất và nó đang mong đợi một giá trị float duy nhất chứ không phải là một chuỗi / danh sách / tuple hoặc float?
derNincompoop

1
Nó sẽ có giá trị đúc Pop_2005rõ ràng cho một float hoặc số nguyên? geo_df['Pop_2005'] = geo_df['Pop_2005'].astype(float)
om_henners

Câu trả lời:


7

Trong geopandas> = 0,3 (phát hành tháng 9 năm 2017), âm mưu của các điểm được dựa trên scatterphương pháp cốt truyện của matplotlib dưới mui xe và điều này chấp nhận một biến số đánh dấu.

Vì vậy, bây giờ bạn thực sự có thể chuyển một cột sang markersize, OP đã làm gì trong câu hỏi ban đầu:

import geopandas

cities = geopandas.read_file(geopandas.datasets.get_path('naturalearth_cities'))
# adding a column with random values for the size
cities['values'] = np.abs(np.random.randn(len(cities))) * 50

cities.plot(markersize=cities['values'])

cho:

nhập mô tả hình ảnh ở đây

Tất nhiên, nếu mục tiêu của bạn chỉ đơn giản là thay đổi điểm đánh dấu thành một giá trị không đổi khác, bạn vẫn có thể chuyển một dấu phẩy đơn cho từ khóa:

cities.plot(markersize=10)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.