我有数据 x,y 并且可以绘制散点图。如何使用 python 中的 matplot 更改频率标记?

sca*_*ear 2 python matplotlib

我已经用谷歌搜索了一个小时左右,但没有找到我要找的东西。这是我在代码中所处的位置。

我使用 BS 将信息拉下来并将其保存到 CSV 文件中。CSV 有 x,y 坐标,我可以将其制作成散点图。

与此类似(大约有 1,500 个数据点,显然有 100 个组合)

x,y

0,6

1,2

0,7

4,6

9,9

0,0

4,4

1,2

ETC。

我想做的是使散点图上的点的大小与它们出现的频率相关。

df = pd.read_csv("book8.csv")

df.plot(kind = 'scatter',x='x',y='y')


plt.show()
Run Code Online (Sandbox Code Playgroud)

这些数组只是 0 到 9 之间的数字。我想将大小调整为 0-9 组合出现的频率。

我目前只有这个,显然它并不是很有用。

https://i.stack.imgur.com/daiXF​​.jpg

我是否需要将 x 和 y 设置到它们自己的数组中来完成此操作,而不是使用数据框(df)?

rog*_*osh 5

我还不确定如何将其推入 numpy (我会继续思考)。同时,Python解决方案:

import matplotlib.pyplot as plt
import random
from collections import Counter 

x_vals = [random.randint(0, 10) for x in range(1000)]
y_vals = [random.randint(0, 10) for x in range(1000)]

combos = list(zip(x_vals, y_vals))
weight_counter = Counter(combos)

weights = [weight_counter[(x_vals[i], y_vals[i])] for i, _ in enumerate(x_vals)]

plt.scatter(x_vals, y_vals, s=weights)
plt.show()
Run Code Online (Sandbox Code Playgroud)