Python 散点图 - 如何查看每个点的条目数

标签 python scatter

我的数据点会在很多条目中重复出现(创建许多重叠的 (x,y) 点),我真的很想知道图表上每个点的条目数。有没有一种简单的方法可以做到这一点(除了显而易见的编写一段代码来执行此操作之外?)

最佳答案

首先将你的点放入元组列表中:

L = [(1,2), (0,0), (0,0), (1,2), (1,2), (3,4)]

我假设您是从文件或其他东西中读取数据,而不是像我上面那样对其进行硬编码,因此请修改导入例程以提供元组列表,或者对导入的数据进行后处理数据以形成您的元组列表。

为什么我要继续讨论元组?因为它们是可散列的,因此可以用来制作一个集合:

S = set(L)
print (S)
set([(1, 2), (0, 0), (3, 4)])

现在我们有了数据中的所有独特点,耶! ...但是每个重复多少次? 这可以通过在列表中对它们进行计数来完成......或者懒得这样做让列表使用列表计数方法来计算它自己:

F = {}
for i in list(S):
    F[i] = L.count(i)

现在 F 是一个字典,包含每个 (X,Y) 点的频率表 F.keys() 将为您提供所有唯一位置,字典包含每个点发生的次数。现在我们需要做的就是绘制它:

from matplotlib.pyplot import figure, show
fig = figure()
sub = fig.add_subplot(111)

由于我们使用的是怪异的元组列表,我们需要使用一些列表推导式将数据恢复为绘图喜欢的格式:

K = F.keys()
Xs = [i[0] for i in K]
Ys = [i[1] for i in K]

现在它会很好地绘制:

sub.plot(Xs, Ys, 'bo')

并且可以像这样用我们的频率注释情节:

for i in K:
    sub.annotate(F[i], xy=i)

显示情节:

show()

你会得到这样的东西: Resulting plot

关于Python 散点图 - 如何查看每个点的条目数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27021056/

相关文章:

python - 在两个 Numpy 数组之间创建 Pandas Dataframe,然后绘制散点图

Python根据距离均匀分散固定中心周围的坐标

r - 从浏览器中突出显示/查找散点图中的数据点

python - 如何在 python matplotlib 点(散点图)图中添加趋势线?

r 散点图,两个方向都有误差线

python - 如何将 RGB 值转换为 Phillips Hue 灯泡的 XY 值

python - 数据框中 3 列的最大值?

python - 如何重命名 DynamoDB 列/键

python - 创建新的 python 对象似乎是同一个对象

python - 如何使用自签名证书限制访问?