如何将每个 .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 文件都有自己的工作表?