python matplotlib中的subplot函数使用详解


Posted in Python onJanuary 19, 2020

python里面的matplotlib.pylot是大家比较常用的,功能也还不错的一个包。基本框架比较简单,但是做一个功能完善且比较好看整洁的图,免不了要网上查找一些函数。于是,为了节省时间,可以一劳永逸。我把常用函数作了一个总结,最后写了一个例子,以后基本不用怎么改了。

一、作图流程:

1.准备数据, , 3作图, 4定制, 5保存, 6显示

1.数据可以是numpy数组,也可以是list

2创建画布:

import matplotlib.pyplot as plt
#figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
 
#num:图像编号或名称,数字为编号 ,字符串为名称
#figsize:指定figure的宽和高,单位为英寸;
#dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 ,1英寸等于2.5cm,A4纸是 21*30cm的纸张 
#facecolor:背景颜色
#edgecolor:边框颜色
#frameon:是否显示边
 
fig = plt.figure()
fig = plt.figure(figsize=(8,6), dpi=80) 
 
fig.add_axes()
fig, axes = plt.subplos(nrows = 2, ncols = 2) #axes是长度为4的列表

3、作图路线

一维数据:

axes[0, 0].plot(x, y)
axes[0,1].bar([1,2,3], [2,4,8])
axes[0,2].barh([1,2,3], [2,4,8])
axes[1,0].axhline(0.45)
axes[1, 1].scatter(x, y)
axes[1,2].axvline(0.65)
axes[2,0].fill(x,y, color = 'blue')
axes[2,1].fill_between(x,y, color = 'blue')
axes[2,2].violinplot(y)
axes[0,3].arrow(0,0,0.5,0.5)
axes[1,3].quiver(x,y)

4, 定制

plt.plot(x,y, alpha=0.4, c = 'blue', maker = 'o')
#颜色,标记,透明度
 
# 显示数学文本
 
t = np.arange(0.0, 2.0, 0.01)
s = np.sin(2*np.pi*t)
 
plt.plot(t,s)
plt.title(r'$\alpha_i > \beta_i$', fontsize=20)
plt.text(1, -0.6, r'$\sum_{i=0}^\infty x_i$', fontsize=20)
plt.text(0.6, 0.6, r'$\mathcal{A}\mathrm{sin}(2 \omega t)$',
     fontsize=20)
plt.xlabel('time (s)')
plt.ylabel('volts (mV)')
 
fig = plt.figure()
fig.suptitle('bold figure suptitle', fontsize=14, fontweight='bold')
 
ax = fig.add_subplot(111)
fig.subplots_adjust(top=0.85)
ax.set_title('axes title')
 
ax.set_xlabel('xlabel')
ax.set_ylabel('ylabel')
 
ax.text(3, 8, 'boxed italics text in data coords', style='italic',
    bbox={'facecolor':'red', 'alpha':0.5, 'pad':10})
 
ax.text(2, 6, r'an equation: $E=mc^2$', fontsize=15)
 
ax.text(3, 2, u'unicode: Institut f\374r Festk\366rperphysik')
 
ax.text(0.95, 0.01, 'colored text in axes coords',
    verticalalignment='bottom', horizontalalignment='right',
    transform=ax.transAxes,
    color='green', fontsize=15)
 
 
ax.plot([2], [1], 'o')
 
 
# 注释
ax.annotate('我是注释啦', xy=(2, 1), xytext=(3, 4),color='r',size=15,
      arrowprops=dict(facecolor='g', shrink=0.05))
 
ax.axis([0, 10, 0, 10])

python matplotlib中的subplot函数使用详解

5, 保存显示

plt.savefig("1.png")
plt.savefig("1.png", trainsparent =True)
plt.show()

二、部分函数使用详解:

1, fig.add_subplot(numrows, numcols, fignum) ####三个参数,分别代表子图的行数,列数,图索引号。 eg: ax = fig.add_subplot(2, 3, 1) (or ,ax = fig.add_subplot(231))

2, plt.subplots()使用

x = np.linspace(0, 2*np.pi,400)
y = np.sin(x**2)
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Simple plot')
 
# Creates two subplots and unpacks the output array immediately 
#fig = plt.figure(figsize=(6,6))
f, (ax1, ax2) = plt.subplots(1, 2, sharey=True)
ax1.plot(x, y)
ax1.set_title('Sharing Y axis')
ax2.scatter(x, y)
 
# Creates four polar axes, and accesses them through the returned array
fig, axes = plt.subplots(2, 2, subplot_kw=dict(polar=True))
axes[0, 0].plot(x, y)
axes[1, 1].scatter(x, y)
 
# Share a X axis with each column of subplots
plt.subplots(2, 2, sharex='col')
 
# Share a Y axis with each row of subplots
plt.subplots(2, 2, sharey='row')
 
# Share both X and Y axes with all subplots
plt.subplots(2, 2, sharex='all', sharey='all')
 
# Note that this is the same as
plt.subplots(2, 2, sharex=True, sharey=True)
 
# Creates figure number 10 with a single subplot
# and clears it if it already exists.
fig, ax=plt.subplots(num=10, clear=True)

3.plt.legend()

plt.legend(loc='String or Number', bbox_to_anchor=(num1, num2))
plt.legend(loc='upper center', bbox_to_anchor (0.6,0.95),ncol=3,fancybox=True,shadow=True)
#bbox_to_anchor被赋予的二元组中,第一个数值用于控制legend的左右移动,值越大越向右边移动,第二个数值用于控制legend的上下移动,值越大,越向上移动

python matplotlib中的subplot函数使用详解

以上这篇python matplotlib中的subplot函数使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python linecache.getline()读取文件中特定一行的脚本
Sep 06 Python
在Python中用get()方法获取字典键值的教程
May 21 Python
Python中tell()方法的使用详解
May 24 Python
Python中time模块和datetime模块的用法示例
Feb 28 Python
django DRF图片路径问题的解决方法
Sep 10 Python
对python pandas 画移动平均线的方法详解
Nov 28 Python
浅析Python语言自带的数据结构有哪些
Aug 27 Python
python3.7将代码打包成exe程序并添加图标的方法
Oct 11 Python
python库skimage给灰度图像染色的方法示例
Apr 27 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
Jun 01 Python
Python如何给函数库增加日志功能
Aug 04 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
Dec 01 Python
Python中的 ansible 动态Inventory 脚本
Jan 19 #Python
Python实现序列化及csv文件读取
Jan 19 #Python
使用python turtle画高达
Jan 19 #Python
ansible动态Inventory主机清单配置遇到的坑
Jan 19 #Python
python实现五子棋游戏(pygame版)
Jan 19 #Python
Python turtle画图库&&画姓名实例
Jan 19 #Python
python3连接mysql获取ansible动态inventory脚本
Jan 19 #Python
You might like
西德产收音机
2021/03/01 无线电
关于php curl获取301或302转向的网址问题的解决方法
2011/06/02 PHP
解析CodeIgniter自定义配置文件
2013/06/18 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
js arguments.callee的应用代码
2009/05/07 Javascript
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
2016/05/10 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
解决webpack打包速度慢的解决办法汇总
2017/07/06 Javascript
jquery+css实现简单的图片轮播效果
2017/08/07 jQuery
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
vue项目tween方法实现返回顶部的示例代码
2018/03/02 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
2018/08/19 Javascript
vue新vue-cli3环境配置和模拟json数据的实例
2018/09/19 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
微信小程序实现同时上传多张图片
2020/02/03 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
微信小程序开发打开另一个小程序的实现方法
2020/05/17 Javascript
python中urlparse模块介绍与使用示例
2017/11/19 Python
Python读取Word(.docx)正文信息的方法
2018/03/15 Python
Python利用splinter实现浏览器自动化操作方法
2018/05/11 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
python实现一次性封装多条sql语句(begin end)
2020/06/06 Python
Python threading模块condition原理及运行流程详解
2020/10/05 Python
基于CSS3实现的漂亮Menu菜单效果代码
2015/09/10 HTML / CSS
HTML5中的websocket实现直播功能
2018/05/21 HTML / CSS
Vans英国官方网站:美国南加州的原创极限运动潮牌
2017/01/20 全球购物
五一手机促销方案
2014/03/08 职场文书
大学生创业项目方案
2014/03/08 职场文书
《春雨》教学反思
2014/04/24 职场文书
英语教师求职信范文
2015/03/20 职场文书
大学运动会加油稿
2015/07/22 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
Python利器openpyxl之操作excel表格
2021/04/17 Python
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
2022/02/12 Redis