python - 如何从单个目录中读取多个 csv 文件并在 Python 中分别绘制它们?
问题描述
我想从一个目录中读取 csv 文件并绘制它们,并能够单击箭头按钮来逐步浏览一个图并查看不同的图。我想指定哪一列并能够像下面的代码一样为其命名。
我能够读取 csv 文件并绘制带有特定列的单个图,但我不确定如何使用多个。我试过 glob 但没有用,我不想将它们连接到单个 csv 文件。我在下面提供了我的代码。任何帮助,将不胜感激。谢谢你。
import pandas as pd
import matplotlib.pyplot as plt
cols_in = [1, 3]
col_name = ['Time (s), Band (mb)']
df = pd.read_csv("/user/Desktop/TestNum1.csv", usecols = cols_in, names =
col_name, header = None)
fig, ax = plt.subplots()
my_scatter_plot = ax.scatter(df["Time (s)"], df["Band (mb)"])
ax.set_xlabel("Time (s)")
ax.set_ylabel("Band (mb)")
ax.set_title("TestNum1")
plt.show()
解决方案
您只需要for
在所有文件上添加一个循环并用于glob
收集它们。
例如,
import pandas as pd
import matplotlib.pyplot as plt
import glob
cols_in = [1, 3]
col_name = ['Time (s), Band (mb)']
# Select all CSV files on Desktop
files = glob.glob("/user/Desktop/*.csv")
for file in files:
df = pd.read_csv(file, usecols = cols_in, names =
col_name, header = None)
fig, ax = plt.subplots()
my_scatter_plot = ax.scatter(df["Time (s)"], df["Band (mb)"])
ax.set_xlabel("Time (s)")
ax.set_ylabel("Band (mb)")
ax.set_title("TestNum1")
plt.show()
保持plt.show()
在for
循环内将确保绘制每个图。搜索“如何在 python 中为绘图添加标题”应该很容易找到其他问题的答案。
推荐阅读
- arrays - 删除 Excel 中特定工作表的除第一行以外的所有内容
- php - Apache 2.4 添加模块
- javascript - 提交按钮间歇性不提交表单信息
- r - ggmap地理编码查询到google api
- reinforcement-learning - OpenAI 健身房中 Mujoco 环境中的自定义网格抖动
- ruby-on-rails - Rails:v-model VueJS 属性
- php - 使用 google-api-php-client 更新特定 google 电子表格上的值(版本 2- 没有作曲家)
- reactjs - 自定义 React `useFetch` 钩子 - 我需要维护多个状态吗?
- asp.net - 如何确定客户端连接的服务器的IP?可能吗?
- python - 如何处理 psycopg2 上传中丢失的数据