[英]Efficient map plotting in python
使用plotly,我學會了繪制表示諸如“每個國家的薪水”或“每個國家的XX數量”之類的東西的地圖。
現在,我想繪制以下內容:例如,我對A,B和C的三個數量感興趣,我想繪制每個國家的小圓圈,例如,當值越大時,其大小越大。 :
美國:A = 10,B = 12,C = 3,我在美國區域將有3個圓圈,即circle(B)> circle(A)> circle(C)。
我的數據框有4列: columns=['Country','quantity_A','quantity_B','quantity_C']
如何繪制看起來像我所描述的地圖。 我願意使用任何允許的庫(當然,越簡單越好)。
謝謝 !
使用matplotlib可以如下繪制散點圖,其中散點的大小由相應列中的數量給出。
import matplotlib.pyplot as plt
import numpy as np; np.random.seed(1)
import pandas as pd
countries = ["USA", "Israel", "Tibet"]
columns=['quantity_A','quantity_B','quantity_C']
df = pd.DataFrame(np.random.rand(len(countries),len(columns))+.2,
columns=columns, index=countries)
fig, ax=plt.subplots()
for i,c in enumerate(df.columns):
ax.scatter(df.index, np.ones(len(df))*i, s = df[c]*200, c=range(len(df)), cmap="tab10")
ax.set_yticks(range(len(df.columns)))
ax.set_yticklabels(df.columns)
ax.margins(0.5)
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.