请考虑以下代码,该代码会产生各种颜色的点的随机序列。
import matplotlib.pyplot as plt
import random
n = 100
x = [0]*n
y = [0]*n
col=['red']*n
for i in range(1,n):
val = random.randint(1,2)
if val == 1:
col[i] = 'red'
if val == 2:
col[i] = 'yellow'
ax=plt.figure().add_subplot()
for i in range(n):
ax.scatter(i,0, color=col[i])
#print(x[i],y[i],col[i])
plt.show()
现在它可以得到100点,但是我希望它可以得到10000点。但是,这样做花费的时间太长了,我如何才能使其更快?谢谢
答案 0 :(得分:4)
避免不必要的for循环,一次绘制n
个散点。而是一次绘制整个范围,然后传递整个col
的颜色列表
fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(range(n), [0]*n, color=col)
plt.show()