Я создал CGI, который позволяет мне отображать график из множества CSV.
Для этого я использую Gnuplot. Это мой сценарий:
set terminal png truecolor size 1950, 650 background rgb "#eff1f0"
set output "/xxx/xxx/xxx/xxx/test.png"
set datafile separator ';'
set size ratio 0.2
set bmargin at screen 0.2
unset key
set datafile separator ";"
set ylabel " MB BLOCK " font ",10" offset -1,0
set xlabel font ",10"
set xtics rotate by 45 offset -0.8,-9,-1.8
plot "/var/xxx/xxx/xxx/xxx/xxx/2020-01/Serveur1/fs1.txt" using 3:xtic(1) title column(2) with linespoints linewidth 2 pointtype 7 pointsize 1.5, \
"/var/xxx/xxx/xxx/xxx/xxx/2020-01/Serveur1/fs2.txt" using 3:xtic(1) title column(2) with linespoints linewidth 2 pointtype 7 pointsize 1.5, \
"/var/xxx/xxx/xxx/xxx/xxx/2020-01/Serveur1/fs3.txt" using 3:xtic(1) title column(2) with linespoints linewidth 2 pointtype 7 pointsize 1.5, \
"/var/xxx/xxx/xxx/xxx/xxx/2020-01/Serveur1/fs4.txt" using 3:xtic(1) title column(2) with linespoints linewidth 2 pointtype 7 pointsize 1.5, \
"/var/xxx/xxx/xxx/xxx/xxx/2020-01/Serveur1/fs5.txt" using 3:xtic(1) title column(2) with linespoints linewidth 2 pointtype 7 pointsize 1.5, \
"/var/xxx/xxx/xxx/xxx/xxx/2020-01/Serveur1/fs6.txt" using 3:xtic(1) title column(2) with linespoints linewidth 2 pointtype 7 pointsize 1.5, \
"/var/xxx/xxx/xxx/xxx/xxx/2020-01/Serveur1/fs7.txt" using 3:xtic(1) title column(2) with linespoints linewidth 2 pointtype 7 pointsize 1.5, \
"/var/xxx/xxx/xxx/xxx/xxx/2020-01/Serveur1/fs8.txt" using 3:xtic(1) title column(2) with linespoints linewidth 2 pointtype 7 pointsize 1.5, \
"/var/xxx/xxx/xxx/xxx/xxx/2020-01/Serveur1/fs9.txt" using 3:xtic(1) title column(2) with linespoints linewidth 2 pointtype 7 pointsize 1.5
У меня есть каталог для каждого сервера и внутри каждого каталога, у меня есть каталог для файловой системы earch. Поэтому мой сценарий создает график для Serveur1 и отслеживает кривую для каждой файловой системы.
С помощью Gnuplot я могу создать график из многих файлов CSV.
Теперь, с plotly и python, у меня есть этот сценарий:
import pandas as pd
import plotly.express as px
df = pd.read_csv('/xxx/xxx/xxx/fs1.csv')
df.head()
fig = px.line(df, x = 'Date', y ='Total Used', title='DF command graph')
fig.add_scatter(x=df['Date'], y=df['Free'])
fig.update_traces(mode='markers+lines')
fig.write_html("/xxx/xx/xxx/file.html", auto_open=False)
fig.show()
И этот сценарий позволяет мне создать график с двумя кривыми для одной файловой системы с файлами csv, которые выглядит так:
Date,Total Used,Free
2020-01-16,384.00,350.00
2020-01-16,384.00,350.00
2020-01-16,384.00,350.00
2020-01-16,384.00,350.00
2020-01-16,384.00,350.00
2020-01-16,384.00,350.00
2020-01-16,384.00,350.00
2020-01-16,384.00,350.00
2020-01-16,384.00,350.00
2020-01-16,384.00,350.00
Результат:
Но я хотел бы сделать график для каждого CSV-файла, как с gnuplot Idont знаете, как это сделать ...
Можете ли вы показать мне, как это сделать?