使用 NumPy 和 Matplotlib 绘制函数图

Matplotlib是Python的绘图库,它与Numpy一起使用

【引例】
画出y=2*x+5的函数图像

import numpy as np
from matplotlib import pyplot as plt

#设置横坐标取值、确定函数表达式
x = np.arange(1, 11)
y = 2 * x + 5
#添加标题、横坐标、纵坐标标签
plt.title("Matplotlib demo")
plt.xlabel("x axis caption")
plt.ylabel("y axis caption")
#画函数图像
plt.plot(x, y)
plt.show()

【运行结果】

如果需要函数图像以圆点呈现,而不是用线呈现,则需要将

plt.plot(x,y)改为plt.plot(x,y,'ob')

【运行结果】

正弦波 y=sin(x)

import numpy as np
from matplotlib import pyplot as plt

#设置横坐标取值、确定函数表达式
x = np.arange(0, 3*np.pi,0.1)
y = np.sin(x)
#添加标题、横坐标、纵坐标标签
plt.title("y=sin(x)")
plt.xlabel("x axis caption")
plt.ylabel("y axis caption")
#画函数图像
plt.plot(x, y)
plt.show()

【运行结果】

余弦函数只需将
y = np.sin(x) 改为 y = np.cos(x)即可

subplot()函数

应用subplot()函数,在同一图中绘制不同的东西

# ReLU和Sigmoid激活函数示意图
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as patches

#设置图片大小
plt.figure(figsize=(6, 4))

# x是1维数组,数组大小是从-10. 到10.的实数,每隔0.1取一个点
x = np.arange(-10, 10, 0.1)
# 计算 Sigmoid函数
s = (np.exp(x)-np.exp(-x))/(np.exp(x)+np.exp(-x))

# 计算ReLU函数
y = np.clip(x, a_min = 0., a_max = None)

#########################################################
# 以下部分为画图程序

# 设置两个子图窗口,将Sigmoid的函数图像画在上边
f = plt.subplot(2,1,1)
# 画出函数曲线
plt.plot(x, s, color='r')
# 添加文字说明
plt.text(-5., 0.9, r'$y=sigmoid(x)$', fontsize=13)
# 设置坐标轴格式
currentAxis=plt.gca()
currentAxis.xaxis.set_label_text('x', fontsize=15)
currentAxis.yaxis.set_label_text('y', fontsize=15)

# 将ReLU的函数图像画在下边
f = plt.subplot(2,1,2)
# 画出函数曲线
plt.plot(x, y, color='g')
# 添加文字说明
plt.text(-3.0, 9, r'$y=ReLU(x)$', fontsize=13)
# 设置坐标轴格式
currentAxis=plt.gca()
currentAxis.xaxis.set_label_text('x', fontsize=15)
currentAxis.yaxis.set_label_text('y', fontsize=15)

plt.show()

【运行结果】

普通图

from matplotlib import pyplot as plt
import numpy as np
n = 256  #n可以理解为曲线的平滑程度
X = np.linspace(-np.pi,np.pi,n,endpoint=True)
Y = np.sin(2*X)

plt.plot(X,Y+1,color='red',alpha=1.00)
plt.plot(X,Y-1,color='blue',alpha=1.00)
plt.show()

【运行结果】

条形图

from matplotlib import pyplot as plt
#数据组1
x =  [5,8,11]  #横坐标
y =  [12,16,6] #对应值
#数据组2
x2 =  [6,9,12] #横坐标
y2 =  [6,15,7] #对应值
plt.bar(x, y, color = 'r', align =  'center')
plt.bar(x2, y2, color =  'g', align =  'center')
plt.title('Bar graph')
plt.ylabel('Y axis')
plt.xlabel('X axis')
plt.show()

【运行结果】

散点图

from matplotlib import pyplot as plt
import numpy as np

n = 1024
X = np.random.normal(0,30,n)
Y = np.random.normal(0,30,n)

plt.title('scale:30')
plt.scatter(X,Y,color='red')
plt.show()

【运行结果】以下分别是方差分别为5,10,15,20,25,30的散点图

等高线图

from matplotlib import pyplot as plt
import numpy as np

def f(x,y):return(1-x/2+x**5+y**3)*np.exp(-x**2-y**2) #等高线模型

n = 256  #n可以理解为曲线的平滑程度
x = np.linspace(-3,3,n)
y = np.linspace(-3,3,n)
X,Y = np.meshgrid(x,y)

plt.contourf(X,Y,f(X,Y),8,alpha=.75,cmap='jet')
C = plt.contour(X,Y,f(X,Y),8,color='black',linewidth=.5)
plt.show()

【运行结果】

灰度图

from matplotlib import pyplot as plt
import numpy as np

def f(x,y):return(1-x/2+x**5+y**3)*np.exp(-x**2-y**2)

n = 10
x = np.linspace(-3,3,4*n)
y = np.linspace(-3,3,4*n)
X,Y = np.meshgrid(x,y)

plt.imshow(f(X,Y))
plt.show()

【运行结果】

饼状图

from matplotlib import pyplot as plt
import numpy as np

n = 20  #n决定了有多少个分区,该代码显示有20个分区
Z = np.random.uniform(0,1,n)
plt.pie(Z)
plt.show()

【运行结果】

量场图

from matplotlib import pyplot as plt
import numpy as np

n = 8
X,Y = np.mgrid[0:n,0:n]
plt.quiver(X,Y,color="red")
plt.show()

【运行结果】

极轴图

from matplotlib import pyplot as plt
import numpy as np

plt.figure(figsize=(4,4))
ax1 = plt.subplot(111,projection='polar')
ax1.set_title('spot fish')
ax1.set_rlim(0,12)

data = np.random.randint(1,10,10)
theta = np.arange(0,2*np.pi,2*np.pi/10)

bar = ax1.bar(theta,data,alpha=0.5)
for r,bar in zip(data,bar):
    bar.set_facecolor(plt.cm.jet(r/10.))
plt.show()

【运行结果】

3D图

到此这篇关于使用 NumPy 和 Matplotlib 绘制函数图的文章就介绍到这了,更多相关NumPy Matplotlib 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 用Python的绘图库(matplotlib)绘制小波能量谱

    时间小波能量谱 反映信号的小波能量沿时间轴的分布. 由于小波变换具有等距效应,所以有: 式中 表示信号强度,对于式①在平移因子b方向上进行加权积分 式中 代表时间-小能量谱 尺度小波能量谱 反映信号的小波能量随尺度的变化情况. 同理,对式①在尺度方向上进行加权积分: 式中 连续小波变换 连续小波变换的结果是一个小波系数矩阵,随着尺度因子和位移因子变化.然后将系数平方后得到小波能量,把每个尺度因子对应的所有小波能量进行叠加,那么就可以得到随尺度因子变换的小波能量谱曲线.把尺度换算成频率后,这条曲线

  • python使用NumPy文件的读写操作

    一.使用NumPy读写文本文件 在数据分析中,经常需要从文件中读取数据或将数据写入文件,常用的存储文件的格式有文本文件.CSV格式文件.二进制格式文件和多维数据文件等. 1.将1维或2维数组写入TXT文件或CSV格式文件 在NumPy中,使用savetxt()函数可以将1维或2维数组写入后缀名为txt或csv的文件.函数格式为: **numpy.savetxt(fname,array,fmt='%.18e',delimiter=None,newline='\n', header='', foot

  • python之用Numpy和matplotlib画一个魔方

    目录 前言 开搞! 构建体素 制作间隙效果 为每个面赋不同的颜色 完整代码 瞎鼓捣系列~ Numpy + matplotlib 画一个魔方 前言 NumPy是Python科学计算的基本包.它是一个Python库,提供了多维数组对象.各种派生对象(如掩码数组和矩阵),以及用于对数组进行快速操作的各种例程,包括数学.逻辑.形状操作.排序.选择.I/O.离散傅里叶变换.基本线性代数.基本的统计运算,随机模拟等等. github 官方文档 最近项目中有个码垛规划的需求,Numpy中的三维数组特别好用,就

  • 使用 NumPy 和 Matplotlib 绘制函数图

    Matplotlib是Python的绘图库,它与Numpy一起使用 [引例] 画出y=2*x+5的函数图像 import numpy as np from matplotlib import pyplot as plt #设置横坐标取值.确定函数表达式 x = np.arange(1, 11) y = 2 * x + 5 #添加标题.横坐标.纵坐标标签 plt.title("Matplotlib demo") plt.xlabel("x axis caption")

  • Python利用matplotlib绘制折线图的新手教程

    前言 matplotlib是Python中的一个第三方库.主要用于开发2D图表,以渐进式.交互式的方式实现数据可视化,可以更直观的呈现数据,使数据更具说服力. 一.安装matplotlib pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple 二.matplotlib图像简介 matplotlib的图像分为三层,容器层.辅助显示层和图像层. 1. 容器层主要由Canvas.Figure.Axes组成. Canvas位

  • 如何利用Python matplotlib绘制雷达图

    本篇文章介绍使用matplotlib绘制雷达图. 雷达图也被称为网络图,蜘蛛图,星图,蜘蛛网图,是一个不规则的多边形.雷达图可以形象地展示相同事物的多维指标,雷达图几乎随处可见,应用场景非常多. 一.matplotlib绘制圆形雷达图 # coding=utf-8 import numpy as np import matplotlib.pyplot as plt results = [{"大学英语": 87, "高等数学": 79, "体育":

  • Python调用Matplotlib绘制振动图、箱型图和提琴图

    目录 Matplotlib介绍 振动图 箱型图 提琴图 Matplotlib介绍 Matplotlib 是一款用于数据可视化的 Python 软件包,支持跨平台运行,它能够根据 NumPy  ndarray 数组来绘制 2D 图像,它使用简单.代码清晰易懂,深受广大技术爱好者喜爱. NumPy 是 Python 科学计算的软件包,ndarray 则是 NumPy 提供的一种数组结构. Matplotlib 由 John D. Hunter 在 2002 年开始编写, 2003 年 Matplot

  • python使用matplotlib绘制折线图

    前言: 我的python学习也告一段落了.不过有些,方法还是打算总结一下和大家分享.我整理了使用matplotlib绘制折线图的一般步骤,按照这个步骤走绘制折线图一般都没啥问题.其实用matplotlib库绘制折线图的过程,其实就是类似于数学上描点,连线绘制图形的过程.所有,这个过程就可以简单的规划为获取图像点信息,描点连线,设置图线格式这三个部分. matplotlib库的安装以及程序引用的说明: 我使用的编程软件为pycharm,我就说一下pycharm安装matplotlib库的方法吧.在

  • python数据可视化matplotlib绘制折线图示例

    目录 plt.plot()函数各参数解析 各参数具体含义为: x,y color linestyle linewidth marker 关于marker的参数 plt.plot()函数各参数解析 plt.plot()函数的作用是绘制折线图,它的参数有很多,常用的函数参数如下: plt.plot(x,y,color,linestyle,linewidth,marker,markersize,markerfacecolor,markeredgewidth,markeredgecolor) 各参数具体

  • Python Matplotlib绘制动图平滑曲线

    目录 绘制动图 FuncAnimation ArtistAnimation 使用 scipy.ndimage.gaussian_filter1d() 高斯核类绘制平滑曲线 使用 scipy.interpolate.make_interp_spline() 样条插值类绘制平滑曲线 使用 scipy.interpolate.interp1d 插值类绘制平滑曲线 拟合曲线后绘制动图 绘制动图 FuncAnimation,它的使用要求简洁且定制化程度较高.如果想将很多图片合并为一个动图,那么Artist

  • python使用matplotlib绘制折线图教程

    matplotlib简介 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备,并且Gallery页面中有上百幅缩略图,打开之后都有源程序.因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定. 在Linux下比较著名的数据图工具还有gnuplot,这个是免费的,Python有一个包可以调用gnuplot,但是语法比较不

  • python使用matplotlib绘制雷达图

    本文实例为大家分享了python使用matplotlib绘制雷达图的具体代码,供大家参考,具体内容如下 示例代码: # encoding: utf-8 import pandas as pd import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['KaiTi'] # 显示中文 labels = np.array([u'总场次', u'吃鸡数', u'前十数',u'总击杀']) #

  • python使用matplotlib绘制折线图的示例代码

    示例代码如下: #!/usr/bin/python #-*- coding: utf-8 -*- import matplotlib.pyplot as plt # figsize - 图像尺寸(figsize=(10,10)) # facecolor - 背景色(facecolor="blue") # dpi - 分辨率(dpi=72) fig = plt.figure(figsize=(10,10),facecolor="blue") #figsize默认为4,

随机推荐