博客文章: https://blog.manchan.top/post/Drawing-mathematical-function-images-with-Python/可在此处找到我

前言

最近开始学习数学了,有一些题目的函数图像非常有特点,有一些函数图像手绘比较麻烦,那么有没有什么办法做出又标准又好看的数学函数图像呢?

答案是有很多的,有很多不错的软件都能画出函数图像,但是,我想到了Python的数据可视化。Python在近些年非常火热,在数据分析以及深度学习等方面得到广泛地运用,其丰富的库使其功能愈加强大。

这里我们使用Python的NumPy库以及Matplotlib库进行绘图。

NumPy与Matplotlib

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。

函数绘图

所需库函数语法

import 语句

想使用 Python 源文件,只需在另一个源文件里执行 import 语句,语法如下:

import module1[, module2[,... moduleN]

from … import 语句

Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中,语法如下:

from modname import name1[, name2[, ... nameN]]

numpy.arange

numpy 包中的使用 arange 函数创建数值范围并返回 ndarray 对象,函数格式如下:

numpy.arange(start, stop, step, dtype)

根据 start 与 stop 指定的范围以及 step 设定的步长,生成一个 ndarray。

参数说明:

参数 描述
start 起始值,默认为0
stop 终止值(不包含)
step 步长,默认为1
dtype 返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型。

numpy.linspace

numpy.linspace 函数用于创建一个一维数组,数组是一个等差数列构成的,格式如下:

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

参数说明:

参数 描述
start 序列的起始值
stop 序列的终止值,如果endpointtrue,该值包含于数列中
num 要生成的等步长的样本数量,默认为50
endpoint 该值为 true 时,数列中包含stop值,反之不包含,默认是True。
retstep 如果为 True 时,生成的数组中会显示间距,反之不显示。
dtype ndarray 的数据类型

导入所需模块

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号

一元一次函数

# 一元一次函数图像
x = np.arange(-10, 10, 0.1)#生成等差数组
y = 2 * x
plt.xlabel('x')
plt.ylabel('y')
plt.title("一元一次函数")
plt.plot(x, y)
plt.show()

一元二次函数

# 一元二次函数图像
x = np.arange(-10, 10, 0.1)
y = x * x
plt.xlabel('x')
plt.ylabel('y')
plt.title("一元二次函数")
plt.plot(x, y)
plt.show()

指数函数

# 指数函数
x = np.arange(-10, 10, 0.1)
y = np.power(2, x)
plt.xlabel('x')
plt.ylabel('y')
plt.title("指数函数")
plt.plot(x, y)
plt.show()

正弦函数

x = np.arange(-3 * np.pi, 3 * np.pi, 0.1)
y = np.sin(x)
plt.xlabel('x')
plt.ylabel('y')
plt.title("正弦函数")
plt.plot(x, y)
plt.show()

余弦函数

x = np.arange(-3 * np.pi, 3 * np.pi, 0.1)
y = np.cos(x)
plt.xlabel('x')
plt.ylabel('y')
plt.title("余弦函数")
plt.plot(x, y)
plt.show()

高级玩法

from pylab import *
import numpy
figure(figsize=(12,8), dpi=72)# 创建一个新的 1 * 1 的子图,接下来的图样绘制在其中的第 1 块(也是唯一的一块)
subplot(1,1,1)X = np.linspace(-np.pi*2, np.pi*2, 2048,endpoint=True)
C,S = np.cos(X), np.sin(X)# 绘制余弦曲线,使用蓝色的、连续的、宽度为 1 (像素)的线条
plot(X, C,linewidth=1.5, linestyle="-",label="正弦")# 绘制正弦曲线,使用绿色的、连续的、宽度为 1 (像素)的线条
plot(X, S,linewidth=1.5, linestyle="-",label="余弦")
legend(loc='upper left')
# 设置横轴的上下限
xlim(-4.5,4.5)# 设置横轴记号
xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])yticks([-1, 0, +1],[r'$-1$', r'$0$', r'$+1$'])# 设置纵轴的上下限
ylim(-1.5,1.5)# 设置纵轴记号
yticks(np.linspace(-1,1,5,endpoint=True))
ax = gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))# savefig("sincosin.png",dpi=72) #以72dpi保存图像# 在屏幕上显示
show()

fig = plt.figure(figsize=(12,8), dpi=72)
x = np.arange(-10, 10, 0.01)
arsinh = np.log(x+np.sqrt(x**2+1))
sinh=0.5*(e**x-e**(-x))
cosh=0.5*(e**x+e**(-x))plt.plot(x, sinh,label="双曲正弦")
plt.plot(x, arsinh,label="反双曲正弦")
plt.plot(x, cosh,label="双曲余弦")plt.legend(loc='upper left')ylim(-10,10)ax = gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))plt.show()

用Python绘制数学函数图像相关推荐

  1. python实现数学函数图像

    python实现数学函数图像 预备知识 使用python绘制基本初等函数 在数学里,基本初等函数包括幂函数.指数函数.对数函数.三角函数.反三角函数.常数函数.不同函数的定义: python标准库[注 ...

  2. 基于 function-plot.js 开源库绘制数学函数图像实现兼文档翻译

    一.前言: 前段时间移动项目想实现一个能实时绘制数学函数图像的H5小应用, app 通过 webview 进行嵌入,目前网上提供了大致有两种方法: ①.Chart.js 结合 Plugins 绘制 = ...

  3. htm+JS实现绘制数学函数图像

    htm+JS实现绘制数学函数图像 其中常用的函数可参见,JS中常用的Math方法 https://blog.51cto.com/u_10725738/5253407 https://www.jb51. ...

  4. 使用python绘制任意函数图像

    使用python绘制任意函数图像 ##原创文章不易,望点赞转发收藏三连 效果展示 y = (sinx)/x y = x4+x3+x^2+1 y=-x^2 文末还会展示一些实例图片 引入需要的库 我们使 ...

  5. 项目二:绘制数学函数图像

    在Python中,绘制函数图像一般要用到Numpy和 Matplotlib两个模块,这两个模块需要另外安装. numpy模块: 是一个科学计算包,其中包括很多数学函数,如三角函数.矩阵计算方法.矢量运 ...

  6. 用c语言绘制数学函数图像,用c语言画数学函数图像.DOC

    用c语言画数学函数图像 时间:2007-02-13 作者:佚名 编辑:本站 点击: 2231 [评论] 符 outtextxy(CX+3,440-40*i,s); //以字符形式输出纵轴上的单位数字 ...

  7. python画函数图像要用到的模块_教你如何绘制数学函数图像——numpy和matplotlib的简单应用...

    numpy和matplotlib的简单应用 一.numpy库 1.什么是numpy NumPy系统是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表 ...

  8. 用python画数学函数图像教程_Python 绘制你想要的数学函数图形

    Python 非常热门,但除非工作需要没有刻意去了解更多,直到有个函数图要绘制,想起了它.结果发现,完全用不着明白什么是编程,就可以使用它完成很多数学函数图的绘制. 通过以下两个步骤,就可以进行数学函 ...

  9. 用python画数学函数图像教程_使用Matplotlib 绘制精美的数学图形例子

    一个最最简单的例子: 绘制一个从 0 到 360 度完整的 SIN 函数图形 import numpy as np import matplotlib.pyplot as pt x = np.aran ...

最新文章

  1. 【UIKit】UITableView 自定义Cell2
  2. 这段AI的深情告白在外网爆火:我并非真实,从未出生,永不死亡,你能爱我吗?...
  3. “中国式招标”的一些趣闻
  4. 学JS的心路历程 -函式(三)this
  5. java svg image xlink_SVG基础 | SVG image 元素
  6. Spring中Bean的定义继承
  7. VBSCRIPT的循环挺好理解的
  8. 【推荐实践】推荐技术在旅游电商中的应用及挑战.pdf(附下载链接)
  9. CocosCreator中Protobuf的简单使用
  10. windows同时安装jdk8和jdk11
  11. arcgis怎么压缩tif文件_PDF文件怎么压缩到最小?这个方法能最快速压缩!
  12. 关于Ubuntu的联网操作
  13. 好系统重装助手教你win10系统连接XP系统共享打印机的方法
  14. wavin flag by k'naan
  15. ReadHub源码阅读笔记(二)dagger+MVP
  16. OneZero第四次站立会议(2016.3.24)
  17. tp5欢迎页 (获取系统信息)
  18. 我所经历的汶川大地震之二
  19. 【windows 10】 Microsoft Store 安装软件闪退的解决办法
  20. :hover的几种选择用法

热门文章

  1. 指定的文件夹没有包含设备的兼容软件驱动程序...请确认它是为用于基于X64的系统的Windows设计的
  2. linux 写镜像工具下载,镜像写入工具下载
  3. MySQL比较两张表数据相同、不同结果记录
  4. linux服务器在没有网的条件下,怎么安装使用numpy呢
  5. 一、达梦数据库的安装
  6. Emgucv不完整图像分割试验(十八)——Emgucv或opencv连接海康/萤石网络4G摄像头
  7. ubuntu18安装详细教程
  8. 计算机电源出现问题,电源故障引起的电脑问题
  9. win10睡眠风扇仍然转动解决办法。
  10. SpringCloud全家桶主要组件及通信协议剖析