簡體   English   中英

python中的有效地圖繪制

[英]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.

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