Отображение нескольких списков CSV в один граф в Python - PullRequest
0 голосов
/ 11 июня 2019

У меня есть 5 CSV-файлов, которые я пытаюсь поместить в один граф в Python.В первом столбце каждого CSV-файла все числа одинаковы, и я хочу рассматривать их как значения x для каждого CSV-файла на графике.Тем не менее, в каждом файле CSV есть еще два столбца (чтобы всего было 3 столбца), но я просто хочу отобразить второй столбец как 'y-значения' для каждого файла CSV на том же графике и в идеале получить 5 разных строкпо одному на каждый файл.У кого-нибудь есть идеи, как мне это сделать?

Я уже загрузил свои файлы в переменную file_list

Ответы [ 4 ]

0 голосов
/ 11 июня 2019
from pathlib import Path
import pandas as pd
import matplotlib.pyplot as plt

files = list(Path("/path/to/folder/with/csvs").glob("*.csv"))

fig, ax = plt.subplots(figsize=(10, 10))
x_col, y_col = "x_column_name", "y_column_name"

for file in files:
    file_name = file.stem
    df = pd.read_csv(file)
    df.plot(x=x_col, y=y_col, ax=ax, label=file_name, legend=True)

fig  # If using a jupyter notebook, and you've run a cell with %matplotlib inline
0 голосов
/ 11 июня 2019

Прочитайте первый файл и создайте список списков, в котором каждый список заполнен двумя столбцами этого файла. Затем прочитайте другие файлы по одному и добавьте столбец y к соответствующему индексу этого списка.

0 голосов
/ 11 июня 2019

Вы можете просто вызвать сюжет более одного раза.Предполагая, что вы from matplotlib.pyplot import plot, вы можете повторять одни и те же значения x или иметь другие значения, и это все равно будет работать.Вот пример:

enter image description here

0 голосов
/ 11 июня 2019

Предполагая, что ваши файлы имеют имена File0.csv, File1.csv, File2.csv, File3.csv, File4.csv, вы можете зацикливать их, игнорировать значения третьего столбца и отображать значения x и y.Следующий псевдокод будет работать для 3 столбцов

import numpy as np
import matplotlib.pyplot as plt

for i in range(5):
    x, y, _ = np.loadtxt('File%s.csv' %i, unpack=True)
    plt.plot(x, y, label='File %s' %i)
plt.legend()    
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...