как получить несколько файлов csv на графике с помощью библиотеки Plotly в python или любого модуля, который может получать результаты в браузере? - PullRequest
0 голосов
/ 09 июля 2020

Допустим, у меня есть несколько файлов csv для test_suites UPT_Synergy_graph22.csv, UPT_C7000_graph22.csv, SAT-Synergy-gen2_graph22.csv, вот так, у меня есть еще 10 файлов csv, которые имеют одинаковые столбцы во всех файлах build_id и передают процент . Мне нужно построить линейный график для всех этих файлов. где идентификатор сборки - это ось x, а процент проходов - ось y. Мне нужно получить линейный график для каждого файла csv (в среднем для каждого набора тестов). каждый файл csv соответствует одному набору test_suite.

Мне удалось получить график только для одного файла csv. Я могу получить график с помощью matplotlib, но мне нужен график на веб-странице / в браузере, я узнал, что мы можем использовать модуль Plotly / bookeh или любой модуль, который может получать те же результаты графика в Интернете, было бы полезно.

пожалуйста, помогите мне решить эту проблему. ниже приведен код, который я использовал. помогите мне преобразовать код с помощью модуля Plotly, чтобы получить линейный график для файлов csv, упомянутых выше.

import pandas as pd
import matplotlib.pyplot as plt
from pathlib import Path
%matplotlib inline  

# graphing parameters
plt.style.use('seaborn')
plt.rcParams['figure.figsize'] = (16.0, 10.0)

p = Path(r'c:\Users\shivarad\Documents')  # path to files
files = list(p.rglob('*graph22.csv'))  # get files

# everything for here down, belongs in one Jupyter cell
plt.figure()
for f in files:  # iterate through files
   file_name = f.stem  # get filename
   df = pd.read_csv(f, dtype={'Pass Percentage': int, 'original_pass_percent': int})  # create 
   dataframe

   print(df.head())  # this is here to verify df has data; it can be commented out or removed

   plt.plot('build ID', 'Pass Percentage', data=df, label=file_name)  # plot the data from each file

plt.legend(bbox_to_anchor=(1.04, 0.5), loc='center left')
plt.savefig('test.jpg')  # verify there's plot in the file
plt.show()  # outside the loop

1 Ответ

0 голосов
/ 10 июля 2020

Я предлагаю вам предварительно объединить или объединить файлы. Поскольку у вас есть список файлов в переменной files и все столбцы одинаковы, возможно,

dt = {'Pass Percentage': int, 'original_pass_percent': int}
df = pd.concat([pd.read_csv(f).assign(filename=f, dtype=dt) for f in files])

, вы можете использовать plotly:

import plotly.express as px
px.line(df, x='build ID', y='Pass Percentage', color='filename')

, предполагая 'build ID' и Pass Percentage - имена столбцов.

...