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