使用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「功能非常强大,但随之而来的却是复杂性」。我们下期见。