使用Python实现基本初等函数可视化
时间:2022-07-23
本文章向大家介绍使用Python实现基本初等函数可视化,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
可视化是直观查看数据分布的有效方式,当然python也不会缺席。
今天的推送就探索一下基础函数的绘制方式,例如下图:
Matplotlib
Matplotlib 是第一个Python数据可视化库,是python社区中使用最广泛的绘图库。其设计风格非常类似于1980年代开发的专有编程语言MATLAB,它提供了与MATLAB命令相似的API,常见包如 pandas 和 Seaborn 都会调用matplotlib。
在官方介绍中,Matplotlib主要的图像组件可以参考下图(翻译来自网络):
安装
# 安装Matplotlib
pip install Matplotlib
# 如果出现因下载失败导致安装不上的情况,可以先启动 ss 再执行安装命令
# 或者在终端中使用代理
pip --proxy http://代理ip:端口 install Matplotlib
绘制目标:
绘制以后,就会有极多的应用场景。比如解析不等式的满足区间,比较...
绘制代码
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
x = np.linspace(0.0,100.0,100)
y1 = x/4 # 曲线 y1
y2 = 50 - x # 曲线 y2
# 标注曲线
plt.plot(x, y1, label=r'$y1 = x/4$')
plt.plot(x, y2, label=r'$y2 = 50 - x$')
plt.xlim((0.0, 100.000))
plt.ylim((0.0, 100.000))
plt.xlabel(r'$X$')
plt.ylabel(r'$Y$')
# 绘制阴影部分
plt.fill_between(x, y1, y2, where=y1<y2, color='grey', alpha=0.5)
# 设置横轴精准刻度
plt.xticks([i for i in range(0,100,5)])
# 设置纵轴精准刻度
plt.yticks([i for i in range(0,100,5)])
# 注释
plt.scatter([40], [10], s=20, color="blue")
plt.annotate("(40, 10)",
xy=(40, 10),
fontsize=12,
xycoords='data') # xycoords='data' 是说基于数据的值来选位置
# 图例
plt.grid(True, linestyle='-.')
plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
# 保存
#plt.savefig('ordering_constraints.png',dpi=300,bbox_inches='tight')
plt.show()
除了绘图,我们还使用了numpy 包,主要目的是创建一个数组 np.linspace,用于绘图。在坐标轴设置上,使用了列表生成式,批量的完成坐标点刻度分布,并绘制网格背景。注释的点和文字是要分开加的,支持字体大小、图例和颜色修改。最后保存图片可以设置像素比例,也可以直接使用 plt.show() 直接查看。整体绘图逻辑不难,需要稍微理解的一下的是绘制阴影部分的 plt.fill_between() 这个方法,修改参数既可以调整成想表达范围。
好了,今天有点像暑假作业的绘图就到这里啦。
不同的绘图包有各自的优缺点,正如Chris Moffitt 所说,matplotlib「功能非常强大,但随之而来的却是复杂性」。我们下期见。
- HTTP-FLV直播初探
- BZOJ1058: [ZJOI2007]报表统计
- React数据流和组件间的通信总结
- react+redux+webpack教程4
- 洛谷P2391 白雪皑皑(并查集)
- BZOJ4514: [Sdoi2016]数字配对(费用流)
- 3.2数据结构之指针和链表 1748:约瑟夫问题
- 2017值得一瞥的JavaScript相关技术趋势
- 1.5编程基础之循环控制44:第n小的质数
- noi 1.8 11图像旋转
- 为什么实现了equals()就必须实现hashCode()?
- 到天宫做客(2017寒假培训测试压轴题)
- 前端--理解 Promise 的工作原理
- 到天宫做客(2017寒假培训测试压轴题)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法