使用for循环的Python可视化

2024-05-29 11:25:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有数据帧df1、df2、df3、df4、df5、df6和df7

我正在尝试使用for循环创建一个包含7个子图的散点图

散点图代码写在下面。对于每一次迭代,我都希望将所有的df更改为df1、df2、df3、df4、df5、df6和df7

plt.scatter(np.log10(df.variable), mod1.predict(df), label='Modeled')
plt.scatter(np.log10(df.variable), df[dependent], label='Actual')
plt.title('Actual Frequency vs Modeled')

关于如何编写这个for循环有什么建议吗


Tags: dffornppltvariablelabeldf1df2
2条回答

解决方案不应涉及exec。给你:

figure, axes = plt.subplots(1, 8)  # 1 row, 8 cols

for i, df in enumerate([df1, df2, df3, df4, df5, df6, df7]):
    plt.scatter(np.log10(df.variable), mod1.predict(df), label='Modeled', ax=axes[i])
    plt.scatter(np.log10(df.variable), df[dependent], label='Actual', ax=axes[i])

plt.title('Actual Frequency vs Modeled')

我希望这有帮助

我希望下面的代码片段能够正常工作

for i in range(1,8):
    exec("df = df{}".format(i))
    plt.scatter(np.log10(df.variable), mod1.predict(df), label='Modeled')
    plt.scatter(np.log10(df.variable), df[dependent], label='Actual')
    plt.title('Actual Frequency vs Modeled')

更新:

fig = plt.figure()
rows = 4
columns = 2

for i in range(1,8):
    exec("df = df{}".format(i))
    plt.subplot(rows, columns, i)
    plt.scatter(np.log10(df.variable), mod1.predict(df), label='Modeled')
    plt.scatter(np.log10(df.variable), df[dependent], label='Actual')
    plt.title('Actual Frequency vs Modeled')
plt.show()

附言:我觉得应该行得通。我还没有在我的环境中测试它

相关问题 更多 >

    热门问题