在matplotlib中,整个图像为一个Figure对象

在Figure对象中可以包含一个或者多个Axes对象  每个Axes对象相当于一个子图了

每个Axes(ax)对象都是一个拥有自己坐标系统的绘图区域

plt.figure, plt.subplot

1.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
% matplotlib inline
# 导入相关模块 # 子图创建1 - 先建立子图然后填充图表 fig = plt.figure(figsize=(10,6),facecolor = 'gray') ax1 = fig.add_subplot(2,2,1) # 第一行的左图
plt.plot(np.random.rand(50).cumsum(),'k--')
plt.plot(np.random.randn(50).cumsum(),'b--')
# 先创建图表figure,然后生成子图,(2,2,1)代表创建2*2的矩阵表格,然后选择第一个,顺序是从左到右从上到下
# 创建子图后绘制图表,会绘制到最后一个子图 ax2 = fig.add_subplot(2,2,2) # 第一行的右图
ax2.hist(np.random.rand(50),alpha=0.5) ax4 = fig.add_subplot(2,2,4) # 第二行的右图
df2 = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
ax4.plot(df2,alpha=0.5,linestyle='--',marker='.')
# 也可以直接在子图后用图表创建函数直接生成图表

输出:

[<matplotlib.lines.Line2D at 0x1d078fe2e48>,
<matplotlib.lines.Line2D at 0x1d078fea2e8>,
<matplotlib.lines.Line2D at 0x1d078fea4e0>,
<matplotlib.lines.Line2D at 0x1d078fea668>]

2.
# 子图创建2 - 创建一个新的figure,并返回一个subplot对象的numpy数组 → plt.subplot

fig,axes = plt.subplots(2,3,figsize=(10,4))   #因为这里返回两个对象,一个使整体图表的对象,一个是不同子图组成的数组
print(fig)
print(axes, axes.shape, type(axes))
ts = pd.Series(np.random.randn(1000).cumsum()) # 生成图表对象的数组 ax1 = axes[0,1] #指定了第0排第一个图表
ax1.plot(ts) df = pd.DataFrame(np.random.rand(100,2))
df.plot()
df.plot(ax = axes[1,0])

输出:

Figure(720x288)
[[<matplotlib.axes._subplots.AxesSubplot object at 0x0000026A4E8A2668>
<matplotlib.axes._subplots.AxesSubplot object at 0x0000026A4E620A90>
<matplotlib.axes._subplots.AxesSubplot object at 0x0000026A4E039358>]
[<matplotlib.axes._subplots.AxesSubplot object at 0x0000026A4DFB31D0>
<matplotlib.axes._subplots.AxesSubplot object at 0x0000026A4E4BFCC0>
<matplotlib.axes._subplots.AxesSubplot object at 0x0000026A4E0F7710>]] (2, 3) <class 'numpy.ndarray'>
<matplotlib.axes._subplots.AxesSubplot at 0x26a4dfb31d0>

3.

# plt.subplots,参数调整

fig,axes = plt.subplots(2,2,sharex=True,sharey=True)
# sharex,sharey:是否共享x,y刻度 所有subplot之间应该使用相同的x轴刻度,相同的y轴刻度。 for i in range(2):
for j in range(2):
axes[i,j].hist(np.random.randn(500),color='k',alpha=0.5)
plt.subplots_adjust(wspace=0.5,hspace=0.5)
# wspace,hspace:用于控制子图之间的水平间隔和垂直间隔

输出:

												

Matplotlib 子图的创建的更多相关文章

  1. Matplotlib 误差线的绘制和子图的创建方式

    一.绘制误差线 使用errorbar方法可以绘制误差线. x = np.linspace(0,10,50) dy=0.8 y = np.cos(x) + dy*np.random.randn(50) ...

  2. 控制 matplotlib 子图大小

    效果图: 代码: import numpy as np import matplotlib.pyplot as plt '''调整 matplotlib 子图的大小''' x1 = np.linspa ...

  3. Python数据分析matplotlib可视化之绘图

    Matplotlib是一个基于python的2D画图库,能够用python脚本方便的画出折线图,直方图,功率谱图,散点图等常用图表,而且语法简单. Python中通过matplotlib模块的pypl ...

  4. Python数据可视化matplotlib和seaborn

    Python在数据科学中的地位,不仅仅是因为numpy, scipy, pandas, scikit-learn这些高效易用.接口统一的科学计算包,其强大的数据可视化工具也是重要组成部分.在Pytho ...

  5. 数据可视化之Matplotlib的使用

    1.什么是数据可视化 数据可视化在量化分析当中是一个非常关键的辅助工具,往往我们需要通过可视化技术,对我们的数据进行更清晰的展示,这样也能帮助我们理解交易.理解数据.通过数据的可视化也可以更快速的发现 ...

  6. Matplotlib数据可视化(2):三大容器对象与常用设置

      上一篇博客中说到,matplotlib中所有画图元素(artist)分为两类:基本型和容器型.容器型元素包括三种:figure.axes.axis.一次画图的必经流程就是先创建好figure实例, ...

  7. Matplotlib 基本概念

    章节 Matplotlib 安装 Matplotlib 入门 Matplotlib 基本概念 Matplotlib 图形绘制 Matplotlib 多个图形 Matplotlib 其他类型图形 Mat ...

  8. 数据可视化实例(十二): 发散型条形图 (matplotlib,pandas)

    https://datawhalechina.github.io/pms50/#/chapter10/chapter10 如果您想根据单个指标查看项目的变化情况,并可视化此差异的顺序和数量,那么散型条 ...

  9. matplotlib图表介绍

    Matplotlib 是一个python 的绘图库,主要用于生成2D图表. 常用到的是matplotlib中的pyplot,导入方式import matplotlib.pyplot as plt 一. ...

随机推荐

  1. rac环境修改除vip外的其他ip地址方法

    官方参考文档(metalink):如何修改集群的公网信息(包括 VIP) (文档 ID 1674442.1) 同事在测试环境测试通过,使用如下方法.如果有疑问,请参照上述文档,写的很详细.1.停止相关 ...

  2. 恢复scout工具栏

    删除scout安装路径 C:\PROGRAM FILES\SIEMENS\STEP7\U7UMC\DATA\WRKBNCH 下的三个文件: acppersi.dat uespersi.dat uesu ...

  3. ABAP OPEN SQL里OPEN CURSOR和SELECT的比较

    OPEN CURSOR After the OPEN CURSOR statement, the database cursor is positioned in front of the first ...

  4. python接口测试-项目实践(一) 测试需求与测试思路

    测试需求: 第三方系统提供了3个接口,需要测试前端显示的字符串里的对应数据与接口数据是否一致. 测试分层: 开发人员的设计:每周从接口取一次数据,拼接完成后保存到数据库.再从数据库取数提供接口给前端开 ...

  5. angular2 里父子组件传值的坑

    1.如果传的是基本类型的值,子组件里改变该值,父组件无变化 2.如果传的是对象,子组件里改变对象里的变量,父组件会变化 3.如果传的是函数,this不会继续指向父组件对象了,如果需要this指向父组件 ...

  6. auto create statistic script

    --生成用户创建的statistic脚本 select object_name(stout.object_id), stout.name, 'CREATE STATISTICS '+ stout.na ...

  7. 如何使用react-redux

    之前学习了react,也学习了redux,那么react-redux是什么呢?实际上他是一个第三方的模块,他可以帮助我们在react之中更加方便的使用redux.首先如果想用react-redux,先 ...

  8. position中需要注意的地方

    relative是相对元素本身位置进行移位,但不会改变本身位置的大小 本身的位置 移位后,可以看到,p5的位置还是在那,并不会自动往上走,也就是p2的位置原来所占据的位置不变的.不会因为偏移而改变布局 ...

  9. sting.Contains()方法

    作用: 返回一个值,判断给定的string对象 是否出现在指定的字符串当中 例子: if(str_arr[i].Contains(textBox1.Text)){//检查是否有匹配

  10. 初学bind

    其实项目中还没有用到. 但自己还是想逐步了解一些高级的JS语法,不是为了炫技,也不像找前端的工作. 主要目的是:1.学习设计思想,提升解决问题的能力2.让自己的脑子动起来,别太笨. 简单的几句话总结一 ...