Как создать диаграмму с несколькими строками с помощью Python в одном графике из разных файлов? - PullRequest
0 голосов
/ 21 июня 2019

В настоящее время я работаю со многими CSV-файлами разных временных рядов.Один из них содержит данные о наблюдаемой температуре за разные часы, а остальные n содержат информацию о прогнозируемой температуре от n различных предикторов.

Я ищу код Python для создания нескольких строк (одна для наблюдаемой температуры и другиедля температуры предиктора) диаграмма сгруппирована по временному интервалу.

Я уже пробовал много решений с разных веб-сайтов, но они не рассматривали случай, когда каждая строка на самом деле представляет собой отдельный файл CSV, а только случай, когда каждая строкастрока в столбце в том же CSV-файле

(здесь приведен только пример с веб-сайта)

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

# Data
df=pd.DataFrame({'x': range(1,11), 'y1': np.random.randn(10), 'y2': np.random.randn(10)+range(1,11), 'y3': np.random.randn(10)+range(11,21) })

# multiple line plot
plt.plot( 'x', 'y1', data=df, marker='o', markerfacecolor='blue', markersize=12, color='skyblue', linewidth=4)
plt.plot( 'x', 'y2', data=df, marker='', color='olive', linewidth=2)
plt.plot( 'x', 'y3', data=df, marker='', color='olive', linewidth=2, linestyle='dashed', label="toto")
plt.legend()

Итак, я ищу код Python, который может рассматривать различные CSV-файлыи свяжите каждый файл со строкой, чтобы получить многострочный график.

1 Ответ

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

Ну, во-первых, вам нужно загрузить CSV-файлы.

df_temp = pd.read_csv("temperatures.csv")
df_1 = pd.read_csv("predictors1.csv")
df_2 = pd.read_csv("predictors2.csv")
...

Кроме того, если вам нужен только один столбец из CSV, вы можете сделать следующее.

# load the first whole csv
df = pd.read_csv("temperatures.csv")
df["y1"] = pd.read_csv("predictors1.csv")["needed_column"]
df["y2"] = pd.read_csv("predictors1.csv")["needed_column"]

Тогда ваш собственный код должен быть в порядке, просто отрегулируйте имена столбцов по мере необходимости.

Короткая заметка, хотя, когда я тестировал, я получил предупреждение о неоднозначных определениях столбцов данных. Выполните одно из следующих действий , чтобы избавиться от предупреждения.

# If using the singe DataFrame version
plt.plot( df.x, df.y1 , marker='o', markerfacecolor='blue', markersize=12, color='skyblue', linewidth=4)
plt.plot( df.x, df.y2 , marker='', color='olive', linewidth=2)
plt.plot( df.x, df.y3 , marker='', color='olive', linewidth=2, linestyle='dashed', label="toto")

# If using the multiple DataFrames version.
plt.plot( df.x, df.y , marker='o', markerfacecolor='blue', markersize=12, color='skyblue', linewidth=4)
plt.plot( df_1.x, df_1.y , marker='', color='olive', linewidth=2)
plt.plot( df_2.x, df_2.y , marker='', color='olive', linewidth=2, linestyle='dashed', label="toto")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...