matplotlib-绘制精美的图标 第一节 快速绘图(I)

xiaoxiao2021-02-28  156

声明:内容全部来自《Python科学计算》(张若愚),仅供学习记录使用。如有兴趣,请尊重知识,购买正版。

Github 链接

使用pyplot模块绘图

matplotlib的pyplot模块提供了与MATLAB类似的绘图函数调用接口,方便用户快速绘制二维图表。 # -*- coding: utf-8 -*- """ @author: xusworld @file: FirstExample.py @time: 2017-05-06 09:37 """ import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10,1000) y = np.sin(x) z = np.cos(x**2) plt.figure(figsize=(8,4)) plt.plot(x,y, label="$sin(x)$", color="red", linewidth=2) plt.plot(x,z,"b--", label="$cos(x^2)$") plt.xlabel("Times(s)") plt.ylabel("Volt") plt.title("PyPlot First Example") plt.ylim(-1.2, 1.2) plt.legend() plt.show() 不得不说,python的库十分强大,短短几行代码就能做出来这么精致的图。 不过其中的很多内容对新手当然包括我自己来说都很陌生,下面就一行一行解释一下。 plt.figure(figsize=(8,4)) 其他的参数仅仅了解一下,这行代码只设置了 figsize 参数.由于参数num为设定,所以调用figure()创建一个Figure()对象,并且让他成为当前Figure对象。 figsize参数指定Figure对象的宽度和高度,单位为英寸。 plt.plot(x,y, label="$sin(x)$", color="red", linewidth=2) plot传送门 创建Figure对象之后,接下来调用plot()在当前的Figure对象中绘图。实际上plot()实在Axes(子图)对象上绘图,如果当前的Figure对象中没有Axes对象,将会位置 创建一个几乎充满整个图表的Axes对象,并且使此Axes对象成为当前的Axes对象。plot()的前两个参数是分别表示X,Y轴数据的对象,这里使用的是NumPy数组。 label: 给曲线指定一个标签,此标签将在图示中显示。如果标签字符串的前后有字符‘$’,matplotlib会使用内嵌的LaTeX引擎将其显示为数学公式。color: 指定曲线的颜色。(上面的传送门中有相关的解释)linewidth: 指定曲线的宽度,可以不是整数,也可以使用缩写形式的参数名lw。 plt.plot(x,z,"b--", label="$cos(x^2)$") 直接通参数"b--"指定曲线的颜色和线型。(仔细查看传送门中的内容) plt.xlabel("Times(s)") plt.ylabel("Volt") 分别设置 X轴,Y轴的标题文字 plt.title("PyPlot First Example") 设置子图标题 plt.ylim(-1.2, 1.2) xlim, ylim:分别设置X,Y的显示范围 plt.legend() 显示图示,即图中表示每条曲线的标签(label)和样式的矩形区域。 plt.show() 显示绘图窗口

面向对象方式绘图

matplotlib实际上是一套面向对象的绘图库,它所绘制的图表中的每个绘图元素,例如线条,文字,刻度等在内存中都有一个对象与之对应。pyplot模块虽然用法简单,但 并不适合在较大的应用程序中使用,因此这里介绍如何使用matplotlib的面向对象的方式编写绘图程序。 为了将面向对象的绘图库包装成只使用函数的API,pyplot模块的内部保存了当前图表以及当前子图等信息。可以使用gcf()和gca()获得这两个对象,它们分别是 "Get Current Figure"和"Get Current Axes"开头字母的缩写。gcf()获得的是表示图表的Figure对象,而gca()获得的则是表示子图的Axes对象。 figure = plt.gcf() axes = plt.gca() print(figure) print(axes) Output Figure(640x480) Axes(0.125,0.11;0.775x0.77)
转载请注明原文地址: https://www.6miu.com/read-50161.html

最新回复(0)