Кратко ръководство как да използвате gnuplot с python?

Опитвам се да начертая графика в Python, използвайки Gnuplot. Трудно ми е да намеря ръководство/уроци как да започна.

Какво се чудя: какви файлове/програми са необходими? (Използвам Ubuntu), откъде да започна?

Ако някой може да препоръча добър урок, ще бъдем много благодарни!

Благодаря ти!


person Fredrik Nylund    schedule 10.11.2011    source източник
comment
Здравейте, имах същия проблем в миналото. Намерих matplotlib много по-лесен за използване. Разгледайте: matplotlib.sourceforge.net Мисля, че е доста невероятно и можете да намерите много примери там. Бутонът за изтегляне е от дясната страна   -  person BuZz    schedule 10.11.2011


Отговори (4)


Можете да опитате gnuplot.py. Това е интерфейс към gnuplot, който използвах в миналото. В уебсайта имате някои указания и има някои примерни скриптове в разпространението.

Всъщност е много лесно да стартирате директно gnuplot от python. Изходният код на gnuplot.py ще ви даде ценни съвети. Вижте също тук и тук за други алтернативи.

Както други препоръчват, алтернативата е да използвате matplotlib. Matplotlib е страхотен и го използвам като основна библиотека за визуализация. Недостатъкът е, че работата с голям брой данни може да стане бавна. gnuplot в този случай е добър вариант.

person joaquin    schedule 10.11.2011

Вашият подход зависи от това, което вече имате и с какво искате да работите. За да начертаете графика с gnuplot, имате нужда от две неща:

  1. Скрипт gnuplot, който описва как трябва да изглежда полученият график (заглавие, описание на ос, легенда...)
  2. Файл с данни, който съдържа данните, които искате да начертаете

Ако вече имате, да речем, скриптовия файл gnuplot и просто искате да напишете нови файлове с данни с помощта на python, този подход е добър в моя вариант. Просто експортирайте данни в посочения формат, който сте използвали във вашите файлове с данни преди, и стартирайте gnuplot от python с нещо като

import os
import subprocess
p = subprocess.Popen("gnuplot <scriptname>", shell = True)
os.waitpid(p.pid, 0)

Не забравяйте, че може да се наложи да промените пътя на файла с данни във вашия gnuplot скрипт, ако пишете нови файлове с данни. Така че нещо като това:

plot "<path>" ...

Ако все още нямате gnuplot скрипт, който искате да използвате, определено можете да напишете такъв и да го използвате от този момент нататък, но използването на python има и други алтернативи.

Можете да разгледате matplotlib, която е библиотека за чертане, която е много подобна по начина, по който Matlab използва командата plot. Той е много добре документиран и има много уроци и примери онлайн, от които можете да се учите и да работите.

person Woltan    schedule 10.11.2011

Като фен на gnuplot използвам тази обвивка на gnuplot https://github.com/mzechmeister/python/wiki/gplot.py.

Ето един демонстрационен фрагмент

from gplot import *

gplot.term('wxt')
gplot.title('"gplot.py"').grid()
gplot.xlabel('"time"')
gplot([1,2,0,4,3.5], 'w l, sin(x), "<seq 10" us 1:(cos($1))')

person Friedrich    schedule 11.03.2020

около 10 години по-късно, позволете ми да насоча вниманието към autogpy or Autognuplotpy.

Autogpy се стреми към пълно генериране на gnuplot скриптове (и подходящо изхвърлени данни) от python.

Например кодът на Python

import autogpy
import numpy as np

xx = np.linspace(0,6,100)
yy = np.sin(xx)
zz = np.cos(xx)

with autogpy.AutogpyFigure("test_figure") as figure: 

    # gnuplot-like syntax
    figure.plot(r'with lines t "sin"',xx,yy)
    
    # matplotlib-like syntax
    figure.plot(xx,zz,u='1:2',w='lines',label='cos')

генерира gnuplot скрипта

set terminal epslatex size 9.9cm,8.cm color colortext standalone      'phv,12 '  linewidth 2
set output 'fig.latex.nice/plot_out.tex'

p "fig__0__.dat" with lines t "sin",\
"fig__1__.dat" u 1:2 with lines t "cos" 

и изхвърля четливи данни.

Поддържа latex, tiks и png терминал, но може лесно да се разшири до повече.

Отказ от отговорност: Аз съм авторът.

person Acorbe    schedule 25.10.2020
comment
Когато се опитам да използвам това, всъщност не мога да видя никакви графики? @Акорбе - person Noah P; 28.10.2020
comment
@NoahP, благодаря за публикацията. разрешили ли сте на imagemagick да извършва преобразувания ` sudo sed -i '/PDF/s/none/read|write/' /etc/ImageMagick-6/policy.xml `? ако това не реши проблема, можете ли да публикувате проблема си в github? с малко повече подробности? github.com/acorbe/autogpy благодаря - person Acorbe; 28.10.2020