同一个循环在matplotlib中如何绘制两个不同的图形?

6

我希望使用一个循环创建两个不同的图表。一个图应该有四条从x-y的直线,另一个图应该有四条从x-y2的斜线。我的代码只显示单个图表中的所有内容。我不太理解plt的工作原理,如何创建两个不同的plt对象?

import matplotlib.pyplot as plt
import matplotlib.pyplot as plt2

x=[[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]]
y=[[1,2,3,4],[2,3,4,5],[3,4,5,6],[7,8,9,10]]
y2=[[11,12,13,24],[42,33,34,65],[23,54,65,86],[77,90,39,54]]
colours=['r','g','b','k']

for i in range(len(x)):
   plt.plot(x[i],y2[i],colours[i])
   plt2.plot(x[i],y[i],colours[i])

plt.show()
plt2.show()

创建两个分离的图形对象,例如 fig1, ax1 = plt.subplots()fig2, ax2 = plt.subplots(),然后使用ax1.plotax2.plot进行绘制。 - cel
1个回答

10

那是你想要做的吗?

import matplotlib.pyplot as plt

x=[[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]]
y=[[1,2,3,4],[2,3,4,5],[3,4,5,6],[7,8,9,10]]
y2=[[11,12,13,24],[42,33,34,65],[23,54,65,86],[77,90,39,54]]
colours=['r','g','b','k']

fig1, ax1 = plt.subplots()
fig2, ax2 = plt.subplots()
for i in range(len(x)):
    ax1.plot(x[i],y2[i],colours[i])
    ax2.plot(x[i],y[i],colours[i])

fig1.show()
fig2.show()

你能解释一下如何在这个循环中最好地添加标题和图例吗? - KubiK888

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接