gpt4 book ai didi

python - 在同一轴python上绘制for循环内生成的多个图

转载 作者:太空狗 更新时间:2023-10-29 21:34:20 29 4
gpt4 key购买 nike

我的代码如下,问题是我得到了 242 个图,而不是一个图。我尝试将 plt.show() 放在循环之外,但没有用。

import numpy as np
import matplotlib.pyplot as plt
import csv

names = list()

with open('selected.csv','rb') as infile:
reader = csv.reader(infile, delimiter = ' ')
for row in reader:
names.append(row[0])

names.pop(0)

for j in range(len(names)):
filename = '/home/mh/Masters_Project/Sigma/%s.dat' %(names[j])
average, sigma = np.loadtxt(filename, usecols = (0,1), unpack = True, delimiter = ' ')
name = '%s' %(names[j])
plt.figure()
plt.xlabel('Magnitude(average)', fontsize = 16)
plt.ylabel('$\sigma$', fontsize = 16)
plt.plot(average, sigma, marker = '+', linestyle = '', label = name)
plt.legend(loc = 'best')
plt.show()

最佳答案

您的问题是您在每次迭代时使用 plt.figure() 创建一个新图形.从您的 for 循环中删除这一行,它应该可以正常工作,如下面的简短示例所示。

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)

for a in [1.0, 2.0, 3.0]:
plt.plot(x, a*x)

plt.show()

Example plot

关于python - 在同一轴python上绘制for循环内生成的多个图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26355313/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com