今天跑python代码,用到matplotlib.pyplot库的scatter函数画散点图时发现,如果对该函数进行循环调用,会导致执行速度越来越慢.
参考了网上的答案后,结合我的问题给出了下面的解决办法:
-
问题描述
有一组数据,需要对其中的每个数据单独分析,然后根据计算结果给予该数据一个颜色.然后将所有数据画成散点图 -
解决循环调用的问题
先将不同组的数据用字典保存下来,然后通过对字典的遍历,批量处理各组内的数据,执行速度大幅提升.
大概代码如下:
for data in dataset:
color = xx data # color 是data对应的颜色
if color not in dict:
dict[color] = []
dict[color].append(data)
for color,datas in dict:
plt.scatter(datas, c=color)
# 这里应该需要两组数据来表示横纵坐标,就从简吧