繁体   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