如何防止python制作多个单独的散点图而产生单个散点图?

时间:2019-09-25 15:00:50

标签: python matplotlib

不被调用时生成的多个散点图。我该如何纠正这个问题?

while True:
    try:
        a=pickle.load(f)
        a1=a['result']
        a2=a['params']
        result=np.array([x for x in a1])
        params=np.array([[z,v] for z,v in a2.items()])
        par=params[3][1]
        precision=result[0]
        #print('precision:',precision,'|','parameters:',par)
        plt.scatter(par,precision,label='Precisionx-Sampling',color='k')
        plt.xlabel('phew')
        plt.ylabel('whep')
        plt.legend()
        plt.show()   
    except EOFError:
        break

生成序列中(par,precision)的各个图

1 个答案:

答案 0 :(得分:0)

plt.show()每次被调用时都会打开一个新图表。您还可以将所有影响图表布局的内容移出while循环。这对您应该有用,但是由于我没有腌制的文件,因此我没有尝试过。

while True:
    try:
        a=pickle.load(f)
        a1=a['result']
        a2=a['params']
        result=np.array([x for x in a1])
        params=np.array([[z,v] for z,v in a2.items()])
        par=params[3][1]
        precision=result[0]
        #print('precision:',precision,'|','parameters:',par)
        plt.scatter(par,precision,label='Precisionx-Sampling',color='k')


    except EOFError:
        break

plt.xlabel('phew')
plt.ylabel('whep')
plt.legend()
plt.show()

为什么这会在while循环中出现? f的循环就像它永远不会改变一样,因此您不需要改变a,这就是生成图形的方式。您是否从循环中删除了一些其他代码来更改要加载的文件?