Python:使用字典中的标记大小绘制散点图?

Python: draw scatter with marker size coming from a dictionary?

假设我有一个由 nxn 个点组成的规则网格,还有一本字典告诉我每个点发生了多少次:

d={
 (0, 0): 1114,
 (0, 1): 270,
 (3, 2): 217,
 (5, 6): 189,
 (10, 10): 164}

我想绘制这些点的散点图,标记的大小由dict的相应值分配。 我该怎么做?

我知道我可以像这样绘制散点图,但是如何构造 s、尺寸列表?

#Import section
#defining d
xticks = [0,1,2,3,4,5,6,7,8,9,10]
yticks = [0,1,2,3,4,5,6,7,8,9,10]
plt.xticks(xticks)
plt.yticks(yticks)
plt.xlabel("x")
plt.ylabel("y",rotation=0)
plt.title('my map')
s=[] #How to structure this?
plt.scatter(x, y,color='yellow',s=s)
plt.show()

X YS都是平行表,所以每一个x[n]都会对应y[n]s[n]。您可以遍历字典并同时附加到所有三个列表:

x_arr,y_arr,s_arr = [], [], []
for (x,y),s in d.items():
    x_arr.append(x)
    y_arr.append(y)
    s_arr.append(s)
plt.scatter(x_arr, y_arr,color='yellow',s=s_arr)

可能有更有效的方法来完成此操作,但这演示了输入的结构。