基于matplotlib的数据可视化(图形填充fill fill_between) - 笔记(二)
区域填充函数有 fill(*args, **kwargs) 和fill_between()
1 绘制填充多边形fill()
1.1 语法结构
fill(*args, **kwargs)
args - sequence of x, y, [color]
ax.fill(x, y) # a polygon with default color ax.fill(x, y, "b") # a blue polygon ax.fill(x, y, x2, y2) # two polygons ax.fill(x, y, "b", x2, y2, "r") # a blue and a red polygon
kwargs - 对象matplotlib.patches.Polygon的特性(class:`~matplotlib.patches.Polygon` properties)
1.2 示例
基本图形
import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 5 * np.pi, 1000) y1 = np.sin(x) y2 = np.sin(2 * x) plt.plot(x, y1, label="$ y = sin(x) $") plt.plot(x, y2, label="$ y = sin(2 * x) $") plt.legend(loc=3) plt.show()
绘制填充图
import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 5 * np.pi, 1000) y1 = np.sin(x) y2 = np.sin(2 * x) plt.fill(x, y1, color="g", alpha=0.3) plt.fill(x, y2, color="b", alpha=0.3) plt.show()
2 函数间区域填充fill_between
2.1 基本语法
两函数间的Y轴方向的填充
plt.fill_between( x, y1, y2=0, where=None, interpolate=False, step=None, hold=None, data=None, **kwargs )
x - array( length N) 定义曲线的 x 坐标
y1 - array( length N ) or scalar 定义第一条曲线的 y 坐标
y2 - array( length N ) or scalar 定义第二条曲线的 y 坐标
where - array of bool (length N), optional, default: None
排除一些(垂直)区域被填充。
注:我理解的垂直区域,但帮助文档上写的是horizontal regions
也可简单地描述为
plt.fill_between(x,y1,y2,where=条件表达式, color=颜色,alpha=透明度)
" where = " 可以省略,直接写条件表达式
2.2 具体示例
import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 5 * np.pi, 1000) y1 = np.sin(x) y2 = np.sin(2 * x) plt.plot(x, y1, c="g") plt.plot(x, y2, c='r') # 将两函数间区域填充成浅灰色 plt.fill_between(x, y1, y2, facecolor="lightgray") plt.show()
通过调换 y1 和 y2 的顺序,图形的 “ 形貌 ” 不发生变化。
将函数复杂化
import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 5 * np.pi, 1000) y1 = np.sin(x) y2 = np.sin(2 * x) plt.plot(x, y1, c="y") plt.plot(x, y2, c='r') # 将两函数间区域填充成浅灰色 plt.fill_between(x, y1, y2, facecolor="lightgray") plt.show()
我们看到,其实只要介于两函数值之间的区域均被 lightgray 颜色填充了。
进一步通过 where = 条件表达式 (这里的 where = 省略了 )该表图形 “ 形貌 ” 。
import numpy as np import matplotlib.pyplot as plt n = 1000 x = np.linspace(0, 8 * np.pi, n) sin_y = np.sin(x) cos_y = np.cos(x / 2) / 2 plt.figure('Fill', facecolor='lightgray') plt.title('Fill', fontsize=20) plt.xlabel('x', fontsize=14) plt.ylabel('y', fontsize=14) plt.tick_params(labelsize=10) plt.grid(linestyle=':') # 把正弦余弦两条曲线画出 plt.plot(x, sin_y, c='dodgerblue', label=r'$y=sin(x)$') plt.plot(x, cos_y, c='orangered', label=r'$\frac{1}{2}cos(\frac{x}{2})$') # 填充 plt.fill_between(x, cos_y, sin_y, cos_y < sin_y, color='dodgerblue', alpha=0.5) plt.fill_between(x, cos_y, sin_y, cos_y > sin_y, color='orangered', alpha=0.5) plt.legend(loc = 3) plt.show()
部分代码来源于:颜色填充(fill & fill_between)
基于matplotlib的数据可视化(图形填充fill fill_between) - 笔记(二)的更多相关文章
- 基于matplotlib的数据可视化 - 笔记
1 基本绘图 在plot()函数中只有x,y两个量时. import numpy as np import matplotlib.pyplot as plt # 生成曲线上各个点的x,y坐标,然后用一 ...
- 基于matplotlib的数据可视化 - 等高线 contour 与 contourf
contour 与contourf 是绘制等高线的利器. contour - 绘制等高线 contourf - 填充等高线 两个的返回值值是一样的(return values are the sam ...
- 基于matplotlib的数据可视化 - 饼状图pie
绘制饼状图的基本语法 创建数组 x 的饼图,每个楔形的面积由 x / sum(x) 决定: 若 sum(x) < 1,则 x 数组不会被标准化,x 值即为楔形区域面积占比.注意,该种情况会出现 ...
- 基于matplotlib的数据可视化 -
matplotlib.pyplot(as mp or as plt)提供基于python语言的绘图函数 引用方式: import matplotlib.pyplot as mp / as plt 本章 ...
- 基于matplotlib的数据可视化 - 柱状图bar
柱状图bar 柱状图常用表现形式为: plt.bar(水平坐标数组,高度数组,宽度比例,ec=勾边色,c=填充色,label=图例标签) 注:当高度值为负数时,柱形向下 1 语法 bar(*args, ...
- 基于matplotlib的数据可视化 - 热图imshow
热图: Display an image on the axes. 可以用来比较两个矩阵的相似程度 mp.imshow(z, cmap=颜色映射,origin=垂直轴向) imshow( X, cma ...
- 基于matplotlib的数据可视化 - 三维曲面图gca
1 语法 ax = plt.gca(projection='3d')ax.plot_surface(x,y,z,rstride=行步距,cstride=列步距,cmap=颜色映射) gca(**kwa ...
- matplotlib实现数据可视化
一篇matplotlib库的学习博文.matplotlib对于数据可视化非常重要,它完全封装了MatLab的所有API,在python的环境下和Python的语法一起使用更是相得益彰. 一.库的安装和 ...
- 使用 jupyter-notebook + python + matplotlib 进行数据可视化
上次用 python 脚本中定期查询数据库,监视订单变化,将时间与处理完成订单的数量进行输入写入日志,虽然省掉了人为定时查看数据库并记录的操作,但是数据不进行分析只是数据,要让数据活起来! 为了方便看 ...
随机推荐
- oauth2-server-php-docs 食谱
一步一步的演练 以下说明提供详细的演练,以帮助您启动并运行OAuth2服务器.要查看实现此库的现有OAuth2服务器的代码库,请查看OAuth2 Demo. 初始化您的项目 为您的项目创建一个目录,并 ...
- Discuz常见小问题-如何为每个板块设置不同的图标
进入后台的论坛-版块管理,选中要修改图标的板块,点击后面的编辑 在板块图标中找到图标文件,一般是PNG或者GIF,大小为32X32,提交之后效果如下
- Android studio 自己定义打包APK名称
Android Studio打包应用默认生成的apk名称是:app-release.apk .假设我们要让生成的apk名跟我们版本号包名有联系的话.那我们就要自己定义生成的apk名了,要怎么做呢. 我 ...
- 微信小程序 - scroll-into-view(提示)
scroll-view的参数scroll-into-view适用于索引以及回到顶部 .详情见官方文档scroll-view: 点击下载:scroll-into-view示例
- MongoDB分片配置系列一:
接这篇博客: http://www.cnblogs.com/xiaoit/p/4479066.html 这里不再说明安装过程. 1:分片简介 分片是一种将海量的数据水平扩展的数据库集群系统,数据分表存 ...
- Android学习笔记一:项目目录结构
一:Android目录 主要内容有: app目录下: manifests目录: AndroidManifest.xml:APP的配置 java目录:主要为源代码和测试代码 res目录:主要是资源文件, ...
- Git 推送和删除远程标签
事实上Git 的推送和删除远程标签命令是相同的,删除操作实际上就是推送空的源标签refs: git push origin 标签名 相当于 git push origin refs/tags/源标签名 ...
- 一个简单的ExtJS搜索建议框
封装的是一个Ext4.2的组件,继承并兼容于Ext的ComboBox. 实现原理非常easy,在 combo 中监听 keyup 事件就可以. 搜索建议的Combo.基本上全然兼容, 使用方式与Com ...
- VREP中的力触觉设备接口(CHAI3D)
力反馈技术是一种新型的人机交互技术,它允许用户借助力反馈设备触碰.操纵计算机生成的虚拟环境中的物体,并感知物体的运动和相应的力反馈信息,实现人机力觉交互.虽然传统的鼠标.键盘.触摸屏等交互手段可以满足 ...
- SpringCloud stream连接RabbitMQ收发信息
百度上查的大部分都是一些很简单的单消费者或者单生产者的例子,并且多是同一个服务器的配置,本文的例子为多服务器配置下的消费生产和消费者配置. 参考资料:https://docs.spring.io/sp ...