如何将每个 .csv 文件分配给单个子图?

Posted

技术标签:

【中文标题】如何将每个 .csv 文件分配给单个子图?【英文标题】:How can I assign each .csv file to a single subplot? 【发布时间】: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()

【问题讨论】:

【参考方案1】:

替换两个for循环:

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

enumerate上循环:

for i, replica in enumerate(replicas):

【讨论】:

以上是关于如何将每个 .csv 文件分配给单个子图?的主要内容,如果未能解决你的问题,请参考以下文章

如何将单个工作表中的多行(在 excel 中)转换为多个 CSV 文件

我的批处理文件应该有啥代码将多个 CSV 文件合并到一个新的单个 Excel 工作簿中,但每个 CSV 文件都有自己的工作表?

如何将csv中的单词分配给变量? [复制]

如何读取 csv 文件并将值分配给 spark scala 中的变量

如何将多个 csv 文件合并为单个 csv 文件

如何使用 gsutil 将多个 csv 文件连接成一个具有单个标题的 csv 文件