Portál AbcLinuxu, 9. května 2025 21:06
import Gnuplot data=[['19/06/2012-12:27:49', '0.83'], ['19/06/2012-12:27:51', '0.00'], ['19/06/2012-12:27:53', '11.78'], ['19/06/2012-12:27:55', '0.00'], ['19/06/2012-12:27:57', '0.60'], ['19/06/2012-12:27:59', '0.00'], ['19/06/2012-12:28:01', '0.00'], ['19/06/2012-12:28:03', '0.80'], ['19/06/2012-12:28:05', '0.00'], ['19/06/2012-12:28:07', '0.00'], ['19/06/2012-12:28:09', '0.00'], ['19/06/2012-12:28:11', '0.60'], ['19/06/2012-12:28:13', '0.00']] chart=Gnuplot.Gnuplot(persist=1) chart('set terminal png') chart('set out "out.png') chart('set xdata time') set_timefmt='set timefmt "%d/%m/%Y-%H:%M:%S"' chart(set_timefmt) set_xformat='set format x "%d/%m-%H:%M"' chart(set_xformat) chart('set ylabel "%"') chart('set yrange [0:1]') chart('set grid') chart('set style data lines') for d in data: chart.plot(d[0],d[1])Výstup v konzole vyzerá takto:
gnuplot> plot 19/06/2012-12:27:49 , 0.83 ^ line 0: ';' expected gnuplot> plot 19/06/2012-12:27:51 , 0.00 ^ line 0: ';' expecteda opakuje sa to dalej. Graf nejaký vytvorí ale bez údajov (čiary) a s nezmyselnými dátumami Budem vdačný za každú pomoc, dokumentácia alebo príklady pre túto kombináciu teda python+gnuplot+časová os prakticky na google nie sú, resp. dokonca som našiel nezodpovedanú otázku presne s týmto problémom... Takže vopred vďaka PS: Teoreticky môžem použiť inú utilitu na robenie grafov, python by mal ostať a dotyčná utilita by mala byť dostupná aj na python3
chart('set out "out.png')ti chybí uvozovka a
for d in data: chart.plot(d[0],d[1])dělá přesně, co mu říkáš. Bere postupně prvky z pole data a dává je vždy jako argumenty příkazu plot, tj spouští postupně
plot 19/06/2012-12:27:49, 0.83 plot 19/06/2012-12:27:51, 0.00 ...Pokud to pole má obsahovat data k vykreslení, tak se musí buď dát do souboru, nebo použít nějakou vychytávku toho modulu, která to udělá za tebe, existuje-li (nevím, neznám, nepoužívám). Pokud chceš opravdu pro každý prvek toho pole nakreslit samostatný jednobodový graf, tak by mělo stačit přidet těm hodnotám uvozovky.
dates=['2012/06/20 09:09:52', '2012/06/20 09:09:54', '2012/06/20 09:09:56', '2012/06/20 09:09:58', '2012/06/20 09:10:00']a samotný kod:
dates2 = [dateutil.parser.parse(s) for s in dates] pylab.plot_date(pylab.date2num(dates2), amounts, linestyle='-') pylab.savefig("out.png")V každom prípade vďaka zo odpoved...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.