Matplotlib 子图的创建

在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:用于控制子图之间的水平间隔和垂直间隔

输出:



原文地址:https://www.cnblogs.com/carlber/p/9938681.html

时间: 2024-08-30 13:28:09

Matplotlib 子图的创建的相关文章

matplotlib子图与多种图形绘制

import numpy as np import matplotlib.pyplot as plt  #散点图 #scatter fig=plt.figure() #fig.add_subplot(3,3,1)#上下两种方法都可以 ax=fig.add_subplot(3,3,1) n=128 #正态分布numpy.random.normal(loc=0.0, scale=1.0, size=None),(均值,标准差,size默认为none,只输出一个值)   x=np.random.nor

Python科学计算——Matplotlib

Matplotlib python科学计算系列 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备,并且Gallery页面中有上百幅缩略图,打开之后都有源程序.因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定. gallery展示页面的地址 简单介绍 该内容来自pyplot_tutorial官方文档 plt.pl

Matplotlib 基本概念

章节 Matplotlib 安装 Matplotlib 入门 Matplotlib 基本概念 Matplotlib 图形绘制 Matplotlib 多个图形 Matplotlib 其他类型图形 Matplotlib 柱状图 Matplotlib 饼图 Matplotlib 直方图 Matplotlib 散点图 Matplotlib 填充图 Matplotlib 网格 Matplotlib 极坐标图 Matplotlib 3D图 Matplotlib 保存图形 Figure/绘图 Figure表示

Matplotlib 容器教程

原文:Artist tutorial 译者:飞龙 协议:CC BY-NC-SA 4.0 matplotlib API 有三个层级. matplotlib.backend_bases.FigureCanvas是绘制图形的区域,matplotlib.backend_bases.Renderer是知道如何在ChartCanvas上绘制的对象,而matplotlib.artist.Artist是知道如何使用渲染器在画布上画图的对象. FigureCanvas和Renderer处理与用户界面工具包(如 w

matplotlib 基础

plt.figure(2) #创建图表2 plt.figure(1) #创建图表1 ax1=plt.subplot(211) # 在上面 最近的 图表1上 创建子图1 ax2=plt.subplot(212) # 在上面 最近的 图表2上 创建子图2 ax3=plt.subplot(212) # 在同一幅子图2 创建子图3 x=np.linspace(0,3,100) for i in xrange(5): plt.figure(2) #选择图表1 plt.plot(x,np.exp(i*x/3

图融合之加载子图:Tensorflow.contrib.slim与tf.train.Saver之坑

import tensorflow as tf import tensorflow.contrib.slim as slim import rawpy import numpy as np import tensorflow as tf import struct import glob import os from PIL import Image import time __sony__ = 0 __huawei__ = 1 __blackberry__ = 2 __stage_raw2ra

Python绘制图表【matplotlib】

matplotlib Matplotlib 是一个 Python 的 2D绘图库 它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形 通过 Matplotlib,开发者可以仅需要几行代码, 便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等 官方文档 [官方中文文档]((https://www.matplotlib.org.cn/) 安装 pip install matplotlib 绘制常见图表 折线图 import random import matplotlib.pyplo

Python解析Wav文件并绘制波形的方法

资源下载 #本文PDF版下载 Python解析Wav文件并绘制波形的方法 #本文代码下载 Wav波形绘图代码 #本文实例音频文件night.wav下载 音频文件下载 (石进-夜的钢琴曲) 前言 在现在繁忙的生活中,我们经常会听些歌来放松一下自己,我们经常会从各种播放软件中听自己喜欢的歌,并且往往我们会下载一部分歌曲,而现在音频的种类也相当繁多,像是Wav,Mp3,FLAC,AAC等等很多格式,最近由于需要做一个能够分析Wav格式音频的波形来取得一些数据比如获取人录音时是否说完等等用途.本周先对解

scikit-learn学习之K-means聚类算法与 Mini Batch K-Means算法

====================================================================== 本系列博客主要参考 Scikit-Learn 官方网站上的每一个算法进行,并进行部分翻译,如有错误,请大家指正 转载请注明出处 ====================================================================== K-means算法分析与Python代码实现请参考之前的两篇博客: <机器学习实战>k