假设我有一个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()
答案 0 :(得分:2)
X
Y
和S
都是并行列表,因此每个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)
可能有更有效的方法来实现这一目标,但这表明了如何构建输入。