Python:绘制位置数据的气泡图

时间:2013-03-19 15:57:00

标签: python matplotlib data-visualization

我有一个带有一对元组的列表来表示GPS日志的位置的x和y坐标。这就像[(x1,y1),(x2,y2),(x3,y3)....]。

列表中可能有多次重复相同的(x,y)位置。现在,我想要做的是绘制一个代表这些位置的数字,并显示相对频率,即最常访问的地方。我想要一个泡泡图表,其中气泡的大小代表该地点的访问次数,或者热图是最有用的方式。

使用matplotlib库在python中执行此操作的最简单方法是什么?

1 个答案:

答案 0 :(得分:4)

使用collections.Counter计算(x,y)对的频率。 使用plt.scatters参数来控制大小,使用c参数来控制颜色。 sc参数都可以将序列作为参数。

import matplotlib.pyplot as plt
import collections
import numpy as np

data = [tuple(pair)
        for pair in np.random.uniform(5, size=(20,2))
        for c in range(np.random.random_integers(50))]
count = collections.Counter(data)

points = count.keys()
x, y = zip(*points)
sizes = np.array(count.values())**2
plt.scatter(x, y, s=sizes, marker='o', c=sizes)
plt.show()

enter image description here