我一直在谷歌搜索一个小时左右,但没有找到我要找的东西。这是我在我的代码中所处的位置。
我使用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
等
我想要做的是使散点图上的点的大小与它们出现频率的频率一致。
df = pd.read_csv("book8.csv")
df.plot(kind = 'scatter',x='x',y='y')
plt.show()
数组只是介于0和9之间的数字。我想将大小调整为0-9组合出现的频率。
我目前只有这个,显然不是很有用。
我是否需要将x和y设置为自己的数组才能实现此目的而不是使用数据帧(df)?
答案 0 :(得分:3)
我不知道我怎么能把它变成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()
答案 1 :(得分:1)
您应该在您设置fill=True
的位置绘制圆圈。
然后,您将计算每个组合的迭代次数,得到圆的半径的百分比,或者只是为每个不同的圆圈的每次迭代添加一些数字到半径。