我使用以下代码(代码1)创建散点图。它工作得很好。我的问题是关于code2的。因为我想创建多个图,所以我感兴趣的是使用for循环来创建它们,而不是编写每个图。我编写了for循环代码(代码2),但它给出了一个错误。请帮我解决代码2。
code1
import matplotlib.pyplot as plt
fig,(ax1,ax2,ax3)=plt.subplots(3,1,figsize=(5,10))
ax1.scatter(norm_reviews["Fandango_Ratingvalue"],norm_reviews["RT_user_norm"])
ax1.set_xlabel("Fandango")
ax1.set_ylabel("Rotten Tomatoes")
ax1.set_xlim(0,5)
ax1.set_ylim(0,5)
ax2.scatter(norm_reviews["Fandango_Ratingvalue"],norm_reviews["Metacritic_user_nom"])
ax2.set_xlabel("Fandango")
ax2.set_ylabel("Metacritic")
ax2.set_xlim(0,5)
ax2.set_ylim(0,5)
ax3.scatter(norm_reviews["Fandango_Ratingvalue"],norm_reviews["IMDB_norm"])
ax3.set_xlabel("Fandango")
ax3.set_ylabel("IMDB")
ax3.set_xlim(0,5)
ax3.set_ylim(0,5)
plt.show()code2:
import matplotlib.pyplot as plt
for i in range(3):
fig,ax(i) = plt.figure(3,1,i,figsize=(5,10))
x_label="Fandango"
y_label=["RT_user_norm","Metacritic_user_nom","IMDB_norm"]
ax(i).scatter(norm_reviews[x_label],norm_reviews[y_label[i]])
ax(i).set_xlim(0,5)
ax(i).set_ylim(0,5)
ax(i).set_xlabel(x_label)
ax(i).set_ylabel(y_label[i])
plt.show()发布于 2020-06-19 00:37:24
range(3)会给你0,1,2。你不能从零开始索引一个子图。
您可以使用以下基本结构:
plt.figure()
for i in range(3):
plt.subplot(3,1,i+1)
plt.plot([1,2], [3,4])
plt.show()其他可能性:
fig, axs = plt.subplots(3, 1, sharex=True)
for i in range(3):
axs[i].plot([0, 1], [2, 3])
plt.show()https://stackoverflow.com/questions/62454230
复制相似问题