我在for循环中有一个函数。函数输出两个图yz,它们分别绘制在不同的图中。我想创建一个图例,其中np.arange(0,20,5)y图中的z中的每个值都显示为c = XXX,其中XXX是for循环内使用的c

import numpy as np
import matplotlib.pyplot as plt

def functions(c,x):
    y = c*x
    z = 0.5*c*x**2
    return y,z

fig1 = plt.figure()
ax1 = fig1.add_subplot(111)

fig2 = plt.figure()
ax2 = fig2.add_subplot(111)

x = np.arange(-5,5)

for c in np.arange(0,20,5):

    y,z = functions(c,x)

    ax1.plot(x, y, lw=2, label='')

    ax2.plot(x, z, lw=2, label='')


ax1.set_xlabel('x', fontsize=16)
ax1.set_ylabel('y', fontsize=16)

ax2.set_xlabel('x', fontsize=16)
ax2.set_ylabel('z', fontsize=16)

plt.show()

最佳答案

在将每个值绘制为新行时,只需将标签设置为c值:

label = '%s'%c, ...


这意味着当您添加图例时

ax2.legend()


它将显示其中的所有c值。

关于python - Python在for循环中显示迭代图例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25394166/

10-09 14:40