python绘图包matplotlib_Python 绘图包 Matplotlib Pyplot 教程

Pyplot 接口简介

Pyplot 入门

matplotlib.pyplot?是命令风格函数的集合,使 Matplotlib 像 MATLAB 一样工作。每个 Pyplot 函数对图形做一些修改,例如:创建一个图形,在图形中创建一个绘图区域,在绘图区域中回值一些线条,用标签装饰图形等等。

注意

Pyplot API 通常不如面向对象的 API 灵活。在这里看到的大多数函数调用也可以作为 Axes 对象的方法调用。建议浏览教程和实力来了解这是如何工作的。

?

用 Pyplot 生成可视化效果非常快速:

importmatplotlib.pyplotasplt

plt.plot([1, 2, 3, 4])

plt.ylabel(‘some numbers‘)

可能知道为什么 X轴的范围是 0-3,Y 轴的范围是 1-4。如果向 plot() 命令提供单个列表或数组,Matplotlib 将假定是一个 Y 值序列,并自动生成 X 值。因为 Python 范围以 0 开头,所以默认的 X 向量与 Y 的长度相同,但是以 0 开头。因此 X 数据是[0, 1, 2, 3]。

([1, 2, 3, 4], [1, 4, 9, 16])

设置图的样式

对于每一对 X,Y 参数,第三个参数都是可选的,它是指示绘图的颜色和线条类型的格式字符串。格式字符串的字母和符号来自 MATLAB,可以将一个颜色字符串与一个行样式字符串连接起来。默认的格式字符串是"b-",这是一个纯蓝色的线。例如:要用红色源泉回值上面的图,代码如下:

([1, 2, 3, 4], [1, 4, 9, 16], ‘ro‘)([0, 6, 0, 20])()

有关行样式和格式化字符串的完整列表,参见?axis()?命令接受一个[ xmin,xmax,ymin,ymax ] 列表,并指定轴的视口。

所有序列都在内部转换成 numpy 数组。下面是示例:

importnumpyasnp

?

# evenly sampled time at 200ms intervals

t =np.arange(0., 5., 0.2)

?

# red dashes, blue squares and green triangles(t, t, ‘r--‘, t, t**2, ‘bs‘, t, t**3, ‘g^‘)()

使用关键词字符串绘图

在某些情况下,数据的格式允许使用字符串访问特定的变量。例如:使用 numpy.recarray 或

Matplotlib?允许使用 data 关键字参数提供这样的对象。如果提供了,那么可以生成包含与这些变量对应字符串的绘图。

data ={‘a‘

data[‘b‘] =data[

data[‘d‘] =np.abs(data[‘d‘]) *100

?(‘a‘, ‘b‘, c=‘c‘, s=‘d‘, data=data)(‘entry a‘)(‘entry b‘)()

用分类变量绘图

还可以使用分类变量创建绘图。Matplotlib 允许直接将分类变量传递给许多绘图函数。例如:

names =[‘group_a‘, ‘group_b‘, ‘group_c‘]

values =[1, 10, 100]

?(1, figsize=(9, 3))

?(131)(names, values)(132)(names, values)(133)(names, values)(‘Categorical Plotting‘)()

控制线属性

线有许多可以设置的属性: linewidth、 dash style、 antialiased 等;?请参见matplotlib.lines.Line2D。有几种方法可以设置 line 属性:使用关键字方向图:

(x, y, linewidth=2.0)

使用 Line2D 实力的 setter 方法。Plot 返回一个 Line2D 对象列表,例如:line1,?line2?=?plot(x1,?y1,?x2,?y2)。在下面的代码中,假设只有一行,所以返回的列表长度为 1。使用元组拆分行,以获得该列表的第一个元素:

line, =plt.plot(x, y, ‘-‘)

line.set_antialiased(False) # turn off antialising

使用?setp()?命令。下面的示例使用MATLAB-style 的命令来设置行列表的多个属性。显而易见 setp 可以处理对象表单或单个对象。可以使用 Python 关键字参数或 MATLAB-style 的字符串或键值对。

lines =plt.plot(x1, y1, x2, y2)

# use keyword args

plt.setp(lines, color=‘r‘, linewidth=2.0)

# or MATLAB style string value pairs

plt.setp(lines, ‘color‘, ‘r‘, ‘linewidth‘, 2.0)

详细的Line2D?属性。

若要获取可设置行属性的列表,请使用一行或多行作为参数调用 setp() 函数:

In [69]:lines =plt.plot([1, 2, 3])

?

In [70]:plt.setp(lines)

alpha: float

animated: [True | False]

antialiased or aa: [True | False]

...snip

?

生成多个图和轴

MATLAB 和 pyplot,具有当前图形和当前 Axes(轴对象)。所有绘图命令都应用于当前 Axes。函数 gca() 返回当前 Axes(gca() 返回当前图形(matplotlib.figure.Figure 实例)。下面是创建两个图的代码:

deff(t):

return

?

t1 =np.arange(0.0, 5.0, 0.1)

t2 =np.arange(0.0, 5.0, 0.02)

?(1)(211)(t1, f(t1), ‘bo‘, t2, f(t2), ‘k‘)

?(212)(t2, np.cos(2*np.pi*t2), ‘r--‘)()

命令是可选的,因为图1是默认创建的,就像如果不手动指定任何坐标轴,默认情况下会创建一个子图2 一样。subplot()?命令 numrows,numcols,plot_number,其中plot_number 范围从1到numrows * numcols。如果numrows * numcols < 10,那么 subplot 命令逗号是可选的。所以subplot(211)和subplot(2, 1, 1)是一样的。

可以创建任何数量的子图和轴。如果想动手设置一个坐标轴,可以使用axes([左,底,宽,高]),其中所有值都是小数(0-1)坐标。有关手动设置轴的示例,请参见。

importmatplotlib.pyplotasplt(1) # the first figure(211) # the first subplot in the first figure([1, 2, 3])(212) # the second subplot in the first figure([4, 5, 6])

?

?(2) # a second figure([4, 5, 6]) # creates a subplot(111) by default

?(1) # figure 1 current; subplot(212) still current(211) # make subplot(211) in figure1 current(‘Easy as 1, 2, 3‘) # subplot 211 title

可以使用清楚当前轴。这是一个面向对象 API 的有状态包装器,可以参见 教程。

如果制作大量图形,那么需要需要注意的:一个图形所需的内存在使用 close()显示关闭之前是不被完全释放的。删除对图形的所有引用,[并 、或] 关闭窗口是不够的。因为 pyplot 内部引用指到 结束?。

?

?

原文:https://www.cnblogs.com/q3619940/p/10693457.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值