Как я могу продублировать эту простую функциональность сюжета Matlab с помощью mathplotlib? - PullRequest
5 голосов
/ 08 декабря 2010

Вот простой скрипт Matlab для чтения CSV-файла и создания графика (с помощью которого я могу увеличивать масштаб с помощью мыши по своему желанию). Я хотел бы увидеть пример того, как это делается в python и mathplotlib.

data = csvread('foo.csv');    % read csv data into vector 'data'
figure;                       % create figure
plot (data, 'b');             % plot the data in blue

В целом, примеры из учебных пособий по mathplotlib, которые я видел, будут создавать статический график, но он не является интерактивно "масштабируемым". Может ли какой-нибудь эксперт по питону поделиться эквивалентом?

Спасибо

Ответы [ 2 ]

6 голосов
/ 09 декабря 2010
import matplotlib.pyplot as plt
import numpy as np

arr=np.genfromtxt('foo.csv',delimiter=',')
plt.plot(arr[:,0],arr[:,1],'b-')
plt.show()

по этим данным (foo.csv):

1,2
2,4
3,9

производит

alt text

Когда вы настраиваете matplotlibrc, одним из ключевых параметров, которые вам нужно установить, является backend. Какой бэкэнд вы выберете, зависит от вашей ОС и установки. Для любой типичной ОС должен быть бэкэнд, который позволяет интерактивно панорамировать и масштабировать график. (GtkAgg работает на Ubuntu). Кнопки, выделенные красным, позволяют выполнять панорамирование и масштабирование соответственно.

1 голос
/ 09 декабря 2010

Поскольку вы знакомы с Matlab, я бы предложил использовать интерфейс pylab для matplotlib - он в основном имитирует построение Matlab. Как говорит unutbu, масштабируемость графика определяется используемой вами серверной частью, а это отдельная проблема.

from pylab import *
data = genfromtxt("file.csv")
plot(data, 'b')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...