【问题标题】:How can I assign each .csv file to a single subplot?如何将每个 .csv 文件分配给单个子图?
【发布时间】:2021-08-02 20:57:02
【问题描述】:

到目前为止,这是我的代码 - 我想要实现的目标:

我有 3 个 .csv 文件(即副本),每个文件有两列:时间(X 轴)和势能(Y 轴) 由于它们具有相似的路径,因此我通过 filename = 读取它们,每个副本都使用 %s 并想在其中一个子图中绘制每个图,以便我可以保存一个包含所有三个图的单个图。

我的输出给了我所有三个子图中的所有三个副本,或者每个子图中只有第三个。我无法将每个 .csv 文件分配给 for 循环中的单独子图。

感谢您的帮助

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

replicas = ['1', '2', '3']

fig, axs = plt.subplots(nrows=3, ncols=1,sharex=True, sharey=True, figsize=(10,7))

for i in range(3): 
    for replica in replicas:
        filename = "elliottIV_HA_IHSS/box4x4x4/bbs60/bbpm2/NA/pH7.0/r%s/analysis/ene_ana/eq/totpot.dat" % replica
        data=pd.read_csv(filename, engine='python', delimiter="\s+", names=["time", "totpot"], usecols=[0, 1], comment="#")
        data.plot(x='time', y='totpot', ax=axs[i], legend=False)
        axs[i].set_title("60bbs: eq - rep{}".format(replica))
plt.tight_layout()

【问题讨论】:

    标签: python pandas csv matplotlib subplot


    【解决方案1】:

    替换两个for循环:

    for i in range(3): 
        for replica in replicas:
    

    enumerate上循环:

    for i, replica in enumerate(replicas):
    

    【讨论】:

      猜你喜欢
      • 2019-05-11
      • 2016-05-14
      • 1970-01-01
      • 1970-01-01
      • 2018-07-12
      • 2021-04-09
      • 2019-08-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多