首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想使用for循环自动绘制轴子图,而不是定义每个子集

我想使用for循环自动绘制轴子图,而不是定义每个子集
EN

Stack Overflow用户
提问于 2020-06-18 23:59:04
回答 1查看 42关注 0票数 0

我使用以下代码(代码1)创建散点图。它工作得很好。我的问题是关于code2的。因为我想创建多个图,所以我感兴趣的是使用for循环来创建它们,而不是编写每个图。我编写了for循环代码(代码2),但它给出了一个错误。请帮我解决代码2。

code1

代码语言:javascript
复制
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:

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

发布于 2020-06-19 00:37:24

range(3)会给你0,1,2。你不能从零开始索引一个子图。

您可以使用以下基本结构:

代码语言:javascript
复制
plt.figure()
for i in range(3):
    plt.subplot(3,1,i+1)
    plt.plot([1,2], [3,4])
plt.show()

其他可能性:

代码语言:javascript
复制
fig, axs = plt.subplots(3, 1, sharex=True)
for i in range(3):
    axs[i].plot([0, 1], [2, 3])
plt.show()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62454230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档