如何用matplotlib复制这个简单的matlab绘图功能?

5 投票
2 回答
655 浏览
提问于 2025-04-16 08:15

这里有一个简单的Matlab脚本,用来读取一个csv文件,并生成一个图表(我可以用鼠标随意放大)。我想看看在Python和matplotlib中是怎么做到的。

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

一般来说,我在matplotlib教程中看到的例子都会生成一个静态图表,但不能进行互动式的“放大”。有没有Python高手愿意分享一个类似的例子呢?

谢谢

2 个回答

1

因为你对Matlab比较熟悉,我建议你使用pylab这个接口来操作matplotlib——它的绘图方式和Matlab很像。正如unutbu所说,图表的缩放功能是由你使用的后端决定的,这个是另外一个问题。

from pylab import *
data = genfromtxt("file.csv")
plot(data, 'b')
6
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。你选择哪个backend取决于你的操作系统和安装方式。对于任何常见的操作系统,都应该有一个backend可以让你互动地平移和缩放图表。(GtkAgg在Ubuntu上可以使用)。红色高亮的按钮分别可以让你平移和缩放。

撰写回答