如何在Python中利用matplotlib.pyplot画出函数图详解

目录
  • 0、引言
  • 1、绘图
    • (1)导入所需库
    • (2)设置函数
    • (3)plt.figure()
    • (4)plt.plot(),plt.axhline(),plt.axvline(),plt.axhspan(),plt.axvspan()
    • (5)设置 x,y 轴的数值范围
    • (6)设置 x,y 轴的标题文本
    • (7)设置图例和标题
    • (8)plt.show()
  • 2运行结果
  • 总结

0、引言

为了让用户能够使用python时,方便地绘制 2D 图表,PYTHON的模块中提供Matplotlib模块中所含的子库pyplot,提供了和 MATLAB 类似的绘图功能。Pyplot 包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改。本文通过绘制三角函数cos()来对其中一些重要函数进行讲解。

1、绘图

(1)导入所需库

import numpy as np
import matplotlib.pyplot as plt

# 用于显示中文字符
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

(2)设置函数

t = np.arange(0, 12, 0.01)
s = np.cos(2 * np.pi * t)

(3)plt.figure()

figure()函数用于展开和设置画布相关参数,figure(num, figsize),num设置为数字时为画布编号,字符串时为画布名;figsize用于设置画布大小(长,宽)。两者不是必须设置的,如果没有,会自动生成合适的结果。还有其他一些参数可以设置,但不常用,就不介绍了,想了解的自行搜索相关内容。

plt.figure(num=1, figsize=(10, 10))

(4)plt.plot(),plt.axhline(),plt.axvline(),plt.axhspan(),plt.axvspan()

plot()用于绘制点和线

plt.plot(x, y, format_string, **kwargs),其中:

  • x:X轴数据,列表或数组,可选
  • y:Y轴数据,列表或数组
  • format_string:控制曲线的格式字符串,可选。包括线条的颜色,样式,宽度等
  • **kwargs:第二组或更多(x,y,format_string),可画多条曲线
plt.plot(t, s, color='red', ls='-', label='sinx')

plt.axhline(),plt.axvline()分别用于绘制平行于x轴和y轴的直线,参数设置和plt.plot()相似。

# 画y=o的直线,平行于x轴;
plt.axhline(y=0, color='green', lw=2, label='分割线')
# 画x=4的直线,平行于y轴;
plt.axvline(x=0, color='b', lw=2, label='分割线2')

plt.axhspan(),plt.axvspan()用于绘制垂直于y轴和x轴的参考区域

# 绘制垂直于x轴的参考区域
plt.axhspan(ymin=0, ymax=.1, facecolor='r', alpha=0.2)
plt.axvspan(xmin=0, xmax=1, facecolor='r', alpha=0.2)

(5)设置 x,y 轴的数值范围

plt.axis([xmin, xmax, ymin, ymax])和plt.xlim(xmin, xmax),plt.ylim(ymin, ymax)功能相同,用于设置坐标轴范围;plt.xticks(list(range(xmin, xmax, 刻度间距))),plt.yticks(list(range((ymin, ymax, 刻度间距)))能更加精确地设置自己想要刻度。

# plt.axis([x_min, x_max, y_min, y_max])
# plt.xlim(0, 12)
# plt.ylim(-1, 1)
plt.xticks(list(range(0, 12, 2)))
plt.yticks(list(range(-1, 2, 1)))

(6)设置 x,y 轴的标题文本

plt.xlabel('x轴')
plt.ylabel('y轴')

(7)设置图例和标题

plt.legend()'
plt.title("正弦函数")

plt.legend()要想正常实现功能效果,plt.plot()中label必须设置。

(8)plt.show()

必须有的函数。在关闭show()函数弹出的图像窗口前,show()函数后面的代码不会运行,直到用户关闭图像窗口,才会继续。
完整代码:

import numpy as np
import matplotlib.pyplot as plt

# 用于显示中文字符
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 预设参数
t = np.arange(0, 12, 0.01)
s = np.cos(2 * np.pi * t)
s2 = np.sin(2 * np.pi * t)
# 打开一个画布
plt.figure(num=1, figsize=(10, 10))

# 画函数线,没有label,图例旧无法显示
plt.plot(t, s, color='red', ls='-', label='cosx', )
# 画y=o的直线,平行于x轴;
plt.axhline(y=0, color='green', lw=2, label='分割线')
# 画x=4的直线,平行于y轴;
plt.axvline(x=0, color='b', lw=2, label='分割线2')
# 绘制垂直于x轴的参考区域
plt.axhspan(ymin=0, ymax=.1, facecolor='r', alpha=0.2)
plt.axvspan(xmin=0, xmax=1, facecolor='r', alpha=0.2)

# 设置 x,y 轴的数值范围
# plt.axis([x_min, x_max, y_min, y_max])
# plt.xlim(0, 12)
# plt.ylim(-1, 1)
plt.xticks(list(range(0, 12, 2)))# 可调刻度
plt.yticks(list(range(-1, 2, 1)))
# 设置 x,y 轴的标题文本
plt.xlabel('x轴')
plt.ylabel('y轴')

# 设置图例
#plt.legend(loc='upper left', bbox_to_anchor=(0.2, 0.95))
plt.legend()
plt.title("正弦函数")

# 在关闭show()函数弹出的图像窗口前,show()函数后面的代码不会运行,直到用户关闭图像窗口,才会继续。
plt.show()

2运行结果

总结

到此这篇关于如何在Python中利用matplotlib.pyplot画出函数图的文章就介绍到这了,更多相关Python matplotlib.pyplot画函数图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • matplotlib.pyplot画图 图片的二进制流的获取方法

    有些时候,我们需要画图后的二进制数据流,matplotlib没有提供相关的api,通过源码查看与百度,得到下面此方法 import matplotlib.pyplot as plt import numpy as np import io x=np.arange(10) y=x #plt.plot(x,y) #canvas = plt.get_current_fig_manager().canvas #canvas.draw() fig=plt.figure() plt.plot(x,y) ca

  • pycharm使用matplotlib.pyplot不显示图形的解决方法

    如下案例,可以正常保存图像,但是plt.show()不能正常显示图像,这里是使用pandas模块读取csv文件: # coding=utf-8 import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv('ccpoints.csv', header=0) plt.scatter(data.x, data.y, c="red", marker='o', label='ccpoints') plt.xlabe

  • Python数据可视化之matplotlib.pyplot绘图的基本参数详解

    目录 1.matplotlib简介 2.图形组成元素的函数用法 2.1. figure():背景颜色 2.2 xlim()和 ylim():设置 x,y 轴的数值显示范围 2.3 xlabel()和 ylabel():设置 x,y 轴的标签文本 2.4 grid():绘制刻度线的网格线 2.5 axhline():绘制平行于 x 轴额度水平参考线 2.6 axvspan():绘制垂直于 x 轴的参考区域 2.7 xticks(),yticks() 2.8 annotate():添加图形内容细节的

  • Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度

    前言 matplotlib.pyplot是一些命令行风格函数的集合,使matplotlib以类似于MATLAB的方式工作.每个pyplot函数对一幅图片(figure)做一些改动:比如创建新图片,在图片创建一个新的作图区域(plotting area),在一个作图区域内画直线,给图添加标签(label)等.matplotlib.pyplot是有状态的,亦即它会保存当前图片和作图区域的状态,新的作图函数会作用在当前图片的状态基础之上. 在开始本文之前,不熟悉的朋友可以先看看这篇文章:Python

  • Matplotlib.pyplot 三维绘图的实现示例

    折线图 Axes3D.plot(xs,ys,*args,**kwargs) Argument Description xs, ys x, y coordinates of vertices zs z value(s), either one for all points or one for each point. zdir Which direction to use as z ('x', 'y' or 'z') when plotting a 2D set. import matplotli

  • matplotlib.pyplot绘图显示控制方法

    在使用Python库时,常常会用到matplotlib.pyplot绘图,本文介绍在PyCharm及Jupyter Notebook页面中控制绘图显示与否的小技巧. 在PyCharm中显示绘图 在绘图代码最后加上"plt.show()"语句. import numpy as np import matplotlib.pyplot as plt x = np.arange(0, 2*np.pi, .001) y = np.sin(2 * np.pi * x) plt.clf() plt.

  • matplotlib.pyplot画图并导出保存的实例

    我就废话不多说了,直接上代码吧! import pandas as pd import numpy as np import matplotlib.pyplot as plt fig, ax = plt.subplots() bar_positions=[1,2,3,4] bar_heights=[1,2,3,4] print(np.arange(len([2,2,3,4,5])+1)) ax.bar(np.arange(len([2,2,3,4,5])),[1,2,3,4,5], 0.5)#设

  • 如何在Python中利用matplotlib.pyplot画出函数图详解

    目录 0.引言 1.绘图 (1)导入所需库 (2)设置函数 (3)plt.figure() (4)plt.plot(),plt.axhline(),plt.axvline(),plt.axhspan(),plt.axvspan() (5)设置 x,y 轴的数值范围 (6)设置 x,y 轴的标题文本 (7)设置图例和标题 (8)plt.show() 2运行结果 总结 0.引言 为了让用户能够使用python时,方便地绘制 2D 图表,PYTHON的模块中提供Matplotlib模块中所含的子库py

  • Python中非常实用的Math模块函数教程详解

    目录 math模块常数 1. 圆周率 2. Tau (τ) 3. 欧拉数 4. 无限 5. 不是数字 算术函数 1. factorial() 2. ceil() 3. floor() 4. trunc() 5. isclose() 幂函数 1. exp() 2. 对数函数 其他重要的math模块功能 由于该math模块与 Python 版本一起打包,因此您不必单独安装它,直接导入: import math math模块常数 Pythonmath模块提供了多种预定义常量.访问这些常量提供了几个优点

  • python中join与os.path.join()函数实例详解

    目录 一.join函数 (一)参数使用说明 (二)实例说明 二.os.path.join() (一)参数使用 (二)实例说明 总结 一.join函数 (一)参数使用说明 描述 Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串. 语法 join()方法语法: str.join(sequence) 参数 sequence -- 要连接的元素序列. 返回值 返回通过指定字符连接序列中元素后生成的新字符串. (二)实例说明 1.对序列进行操作 x = ['qingni

  • python中利用matplotlib读取灰度图的例子

    代码为: import matplotlib.pyplot as plt #用于显示图片 import matplotlib.image as mpimg # mpimg 用于读取图片 picdir = 'C:\\Users\\wyt\\Desktop\\test\\ship\\012400.jpg' img = mpimg.imread(picdir) plt.imshow(img) plt.title('Original train image') plt.show() 显示结果如下,是以热

  • python中的数组赋值与拷贝的区别详解

    具体的注解我已经写在了程序里面:通俗的解释了python里面的浅拷贝与深拷贝的不同,请看程序. # -*- coding: utf-8 -*- import numpy as np import copy as cp import matplotlib.pyplot as plt import time import math fig = plt.figure() ax = fig.add_subplot(241) # 定义一个多维数组 x = np.array([[1, 2, 3], [4,

  • Python中read,readline和readlines的区别案例详解

    python中有神奇的三种读操作:read.readline和readlines read()  : 一次性读取整个文件内容.推荐使用read(size)方法,size越大运行时间越长 readline()  :每次读取一行内容.内存不够时使用,一般不太用 readlines()   :一次性读取整个文件内容,并按行返回到list,方便我们遍历 一般小文件我们都采用read(),不确定大小你就定个size,大文件就用readlines() 1)我们先用read来完整读取一个小文件,代码如下: f

  • python中requests库session对象的妙用详解

    在进行接口测试的时候,我们会调用多个接口发出多个请求,在这些请求中有时候需要保持一些共用的数据,例如cookies信息. 妙用1 requests库的session对象能够帮我们跨请求保持某些参数,也会在同一个session实例发出的所有请求之间保持cookies. 举个栗子,跨请求保持cookies,在命令行上输入下面命令: # 创建一个session对象 s = requests.Session() # 用session对象发出get请求,设置cookies s.get('http://ht

  • 基于python中pygame模块的Linux下安装过程(详解)

    一.使用pip安装Python包 大多数较新的Python版本都自带pip,因此首先可检查系统是否已经安装了pip.在Python3中,pip有时被称为pip3. 1.在Linux和OS X系统中检查是否安装了pip 打开一个终端窗口,并执行如下命令: Python2.7中: zhuzhu@zhuzhu-K53SJ:~$ pip --version pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7) Python3.X中: z

  • 在python中按照特定顺序访问字典的方法详解

    最近使用python写一些东西,在参考资料的时候发现字典是没有顺序的,那么怎么样按照一定顺序访问字典呐,我找到了一个小方法: 假设一个字典是: D = {'a': '1', 'b': '2', 'c': '3'} 如果我们要按照a, b, c的顺序访问字典,可以借助一个列表,比如说: L = list(D.keys()) L.sort() for key in L: print(key, 'is' D[key]) 输出为: a is 1 b is 2 c is 3 需要倒序的话只需使用倒序函数排

  • 对python中的控制条件、循环和跳出详解

    对python中的控制条件.循环和跳出详解 代码缩进(代码块): python用缩进表示代码块,没有其他语言的大括号 缩进是强制检查,整个代码缩进必须一致,否则无法运行 用2.4个空格或者tab缩进 ide自动保证缩进一致 If.elif和else的条件分支: if if...else if...elif..else 没有switch.case语法 空的列表.元祖.字符串.0都被评估为False None被评估为False 控制条件后面必须加":" a=100 if a > 80

随机推荐