学习笔记,这个笔记以例子为主。
编辑器:EditPlus


文章目录

  • 图形对象(图形窗口)
      • 案例1(绘制一个窗口)
      • 案例2(绘制两个窗口)
    • 设置当前窗口的参数
    • 子图
      • 矩阵式布局(不支持单元格合并)
      • 网格式布局(支持单元格合并)
      • 自由式布局
    • 刻度定位器
    • 刻度网格线
    • 半对数坐标

图形对象(图形窗口)

  • 绘制图形窗口语法
mp.figure('窗口标题栏文本',   #窗口标题栏文本figsize = (4, 3), #窗口大小 <元祖>dpi = 120,        #像素密度facecolor = ''    #图表背景色)

案例1(绘制一个窗口)

代码:

import matplotlib.pyplot as mpmp.figure('窗口标题栏文本',figsize = (4, 3),dpi = 120,facecolor = 'r')mp.show()

图像:

备注:mp.figure方法不仅可以构建一个新窗口,如果已经构建过title='A’的窗口,又使用figure方法构建了title=‘A’ 的窗口的话,mp将不会创建新的窗口,而是把title='A’的窗口置为当前操作窗口。

案例2(绘制两个窗口)

代码:

import matplotlib.pyplot as mpmp.figure('Figure A', facecolor = 'gray')
mp.figure('Figure B', facecolor = 'lightgray')mp.show()

图像:

设置当前窗口的参数

  • 语法
# 设置图表标题 显示在图表上方
mp.title(title, fontsize=12)
# 设置水平轴的文本
mp.xlabel(x_label_str, fontsize=12)
# 设置垂直轴的文本
mp.ylabel(y_label_str, fontsize=12)
# 设置刻度参数   labelsize设置刻度字体大小
mp.tick_params(labelsize= 8)
# 设置图表网格线
mp.grid(linestyle='')
#linestyle设置网格线的样式# -  or solid 粗线#   -- or dashed 虚线#   -. or dashdot 点虚线#   :  or dotted 点线# 设置紧凑布局,把图表相关参数都显示在窗口中
mp.tight_layout()
  • 举个例子

代码:

import matplotlib.pyplot as mpmp.figure('Figure B', facecolor = 'lightgray')
# 设置图表标题 显示在图表上方
mp.title('Figure A', fontsize=15)
# 设置水平轴的文本
mp.xlabel('X', fontsize=12)
# 设置垂直轴的文本
mp.ylabel('Y', fontsize=12)
# 设置刻度参数   labelsize设置刻度字体大小
mp.tick_params(labelsize= 10)
# 设置图表网格线
mp.grid(linestyle='--')
# 设置紧凑布局,把图表相关参数都显示在窗口中
mp.tight_layout() mp.show()

图像:

子图

矩阵式布局(不支持单元格合并)

  • 语法
# 拆分矩阵
mp.subplot(rows, cols, num)
#rows:  行数 ,cols:   列数,num:子图编号
#比如:
mp.subplot(3, 3, 5)
#操作3*3的矩阵中编号为5的子图

图示:

  • 例子(绘制9宫格)

代码:

import matplotlib.pyplot as mpmp.figure('Subplot', facecolor='lightgray')for i in range(1, 10):mp.subplot(3, 3, i)mp.text(0.5, 0.5, i, size=36, ha='center',va='center')mp.xticks([]) #mp.xticks()为设置x轴刻度mp.yticks([]) #mp.yticks()为设置y轴刻度mp.tight_layout()mp.show()

图像:

网格式布局(支持单元格合并)

  • 语法
import matplotlib.gridspec as mg# 调用GridSpec方法拆分网格式布局
gs = mg.GridSpec(rows, cols)
# rows: 行数
# cols: 列数#比如:
gs = mg.GridSpec(3, 3)
#拆分成3行3列# 合并0行与0、1列为一个子图表
mp.subplot(gs[0, :2])
  • 例子

代码:

import matplotlib.pyplot as mp
import matplotlib.gridspec as mgmp.figure('GridLayout', facecolor='lightgray')
#拆分成3行3列
gridsubs = mp.GridSpec(3, 3)
# 合并0行、0和1列为一个子图
mp.subplot(gridsubs[0, :2])
mp.text(0.5, 0.5, 1, ha='center', va='center', size=36)
mp.tight_layout()
mp.xticks([])
mp.yticks([])mp.show()

图像:

自由式布局

  • 语法
import matplotlib.gridspec as mgmp.figure('Flow Layout', facecolor='lightgray')
# 设置图标的位置,给出左下角点坐标与宽高即可
mp.axes([left_bottom_x, left_bottom_y, width, height])
# left_bottom_x: 坐下角点x坐标
# left_bottom_x: 坐下角点y坐标
# width:         宽度
# height:        高度#比如:
mp.axes([0.03, 0.03, 0.94, 0.94])
  • 例子

代码:

import matplotlib.pyplot as mp
import matplotlib.gridspec as mgmp.figure('FlowLayout', facecolor='lightgray')mp.axes([0.08, 0.08, 0.6, 0.5])
mp.xticks([])
mp.yticks([])
mp.axes([0.08, 0.6, 0.6, 0.3])
mp.xticks([])
mp.yticks([])mp.show()

图像:

刻度定位器

  • 语法
# 获取当前坐标轴
ax = mp.gca()
# 设置水平坐标轴的主刻度定位器
ax.xaxis.set_major_locator(mp.NullLocator())
# 设置水平坐标轴的次刻度定位器为多点定位器,间隔0.1
ax.xaxis.set_minor_locator(mp.MultipleLocator(0.1))

常用刻度器如下:

# 空定位器:不绘制刻度
mp.NullLocator()
# 最大值定位器:最多绘制nbins+1个刻度
mp.MaxNLocator(nbins=3)
# 定点定位器:根据locs参数中的位置绘制刻度
mp.FixedLocator(locs=[0, 2.5, 5, 7.5, 10])
# 自动定位器:由系统自动选择刻度的绘制位置
mp.AutoLocator()
# 索引定位器:由offset确定起始刻度,由base确定相邻刻度的间隔
mp.IndexLocator(offset=0.5, base=1.5)
# 多点定位器:从0开始,按照参数指定的间隔(缺省1)绘制刻度
mp.MultipleLocator()
# 线性定位器:等分numticks-1份,绘制numticks个刻度
mp.LinearLocator(numticks=21)
# 对数定位器:以base为底,绘制刻度
mp.LogLocator(base=2)
  • 例子(绘制一个数轴)

代码:

import matplotlib.pyplot as mp
import matplotlib.gridspec as mgmp.figure('Locators', facecolor='lightgray')
# 获取当前坐标轴
ax = mp.gca()
# 隐藏除底轴以外的所有坐标轴
ax.spines['left'].set_color('none')
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
# 将底坐标轴调整到子图中心位置
ax.spines['bottom'].set_position(('data', 0))mp.xlim(0, 10)
mp.yticks([])
# 设置水平坐标轴的主刻度定位器
ma_loc = mp.MultipleLocator(1)
ax.xaxis.set_major_locator(ma_loc)
# 设置水平坐标轴的次刻度定位器为多点定位器,间隔0.1
mi_loc = mp.MultipleLocator(0.1)
ax.xaxis.set_minor_locator(mi_loc)
# 标记所用刻度定位器类名 mp.show()

图像:

刻度网格线

  • 语法
ax = mp.gca()
#绘制刻度网格线
ax.grid(which='',        # 'major'/'minor' <-> '主刻度'/'次刻度' axis='',     # 'x'/'y'/'both' <-> 绘制x或y轴linewidth=1,    # 线宽linestyle='',    # 线型color='',        # 颜色alpha=0.5      # 透明度
)
  • 举个例子

绘制曲线y = [1, 10, 100, 1000, 100, 10, 1],然后设置y轴刻度网格线。

代码:

import numpy as np
import matplotlib.pyplot as mpy = [1, 10, 100, 1000, 100, 10, 1]
mp.figure('Grid Line', facecolor='lightgray')
# 设置刻度定位器
ax = mp.gca()
y_ma_loc = mp.MultipleLocator(250)
ax.yaxis.set_major_locator(y_ma_loc)
y_mi_loc = mp.MultipleLocator(50)
ax.yaxis.set_minor_locator(y_mi_loc)# 设置刻度网格线
ax.grid(which='major', axis='y',linewidth=0.75, color='orangered',linestyle='-')
ax.grid(which='minor', axis='y',linewidth=0.25, color='orangered',linestyle='-')mp.plot(y, 'o-', color='dodgerblue')
mp.show()

图像:

半对数坐标

  • 举个例子

y轴将以指数方式递增。基于半对数坐标绘制第2个子图,表示曲线:y = [1, 10, 100, 1000, 100 10, 1]

代码:

import numpy as np
import matplotlib.pyplot as mpy = [1, 10, 100, 1000, 100, 10, 1]
mp.figure('Grid Line', facecolor='lightgray')mp.subplot(211)
# 设置刻度定位器
ax = mp.gca()
y_ma_loc = mp.MultipleLocator(250)
ax.yaxis.set_major_locator(y_ma_loc)
y_mi_loc = mp.MultipleLocator(50)
ax.yaxis.set_minor_locator(y_mi_loc)# 设置刻度网格线
ax.grid(which='major', axis='y',linewidth=0.75, color='orangered',linestyle='-')
ax.grid(which='minor', axis='y',linewidth=0.25, color='orangered',linestyle='-')mp.plot(y, 'o-', color='dodgerblue')mp.subplot(212)
# 设置刻度定位器
ax = mp.gca()
y_ma_loc = mp.MultipleLocator(250)
ax.yaxis.set_major_locator(y_ma_loc)
y_mi_loc = mp.MultipleLocator(50)
ax.yaxis.set_minor_locator(y_mi_loc)# 设置刻度网格线
ax.grid(which='major', axis='both',linewidth=0.75, color='orangered',linestyle='-')
ax.grid(which='minor', axis='both',linewidth=0.25, color='orangered',linestyle='-')# 半对数坐标显示图形
mp.semilogy(y, 'o-', color='dodgerblue')mp.show()

图像:

Matplotlib基础(part2)--图形对象相关推荐

  1. python Numpy 的基础用法以及 matplotlib 基础图形绘制

    python Numpy 的基础用法以及 matplotlib 基础图形绘制 1. 环境搭建 1.1 Anaconda ​ anaconda 集成了数据分析,科学计算相关的所有常用安装包,比如Numo ...

  2. Matlab绘图基础——利用axes(坐标系图形对象)绘制重叠图像 及 一图多轴(一幅图绘制多个坐标轴)

    Matlab绘图基础--利用axes(坐标系图形对象)绘制重叠图像 及 一图多轴(一幅图绘制多个坐标轴) - 司徒鲜生 - 博客园 Matlab中axes函数解析_ljh0302的博客-CSDN博客_ ...

  3. Matplotlib全部基础可视化图形及实现代码(共11种图形)

    Matplotlib全部基础可视化图形及实现代码 开始先来一段网络抄袭的的Matplotlib介绍 Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的 ...

  4. Matplotlib figure图形对象

    Matplotlib figure图形对象 通过前面的学习,我们知道matplotlib.pyplot模块能够快速地生成图像,但如果使用面向对象的编程思想,我们就可以更好地控制和自定义图像. 在 Ma ...

  5. 超详细——matplotlib基础

    Matplotlib 基础 文章目录 Matplotlib 基础 安装 matplotlib 架构 matplotlib的基本用法 一.线性图 二.柱状图 三.散点图 四.等高线图 五.处理图片 六. ...

  6. 使用Matplotlib绘制3D图形

    本文是Matplotlib的第二篇文章,会讲解如何通过Matplotlib绘制3D图形.关于Matplotlib的第一篇文章,请看这里:Python绘图库Matplotlib入门教程. 测试环境 由于 ...

  7. python:matplotlib基础(2)

    #%% md ### 图片灰度处理 #%% import numpy as np import pandas as pd import matplotlib.pyplot as plt %matplo ...

  8. python:matplotlib基础(1)

    Matplotlib中的基本图表包括的元素 + x轴和y轴   水平和垂直的轴线 + x轴和y轴刻度   刻度标示坐标轴的分隔,包括最小刻度和最大刻度 + x轴和y轴刻度标签   表示特定坐标轴的值 ...

  9. python:matplotlib基础(3)

    #%% md ### 图片灰度处理 #%% md 三种方法 #%% import matplotlib.pyplot as plt %matplotlib inline #%% import nump ...

最新文章

  1. 升级 90天 vs2008 在win2008下。
  2. 文巾解题 01.05. 一次编辑
  3. SAP UI5 attachment control relative url binding
  4. 字节流读数据 一次读一个字节
  5. LeetCode刷题(40)--Search a 2D Matrix
  6. 游戏版号重新发放,开发者可以松口气了!| 畅言
  7. maven 排除某个类_java-如何从Maven依赖项中排除某些程序包(在JAR中)?
  8. linux向用户发送消息,Linux终端中向记录的用户发送消息
  9. 虚拟机安装ubuntu18.04及其srs服务器的搭建
  10. python实现卷积神经网络_【455】Python 徒手实现 卷积神经网络 CNN
  11. 枪毙ctfmon.exe 恢复你的默认输入法
  12. 前端 - token 是什么?为什么每次请求头(HEADS)里要携带它?
  13. linux鼠标手势双dock,Linnx Mint 上使用触摸板手势
  14. 失效而后犬儒【2019.05.15报告记录】
  15. python两行代码实现转换视频格式,以flv转换mp4为例
  16. Android 蓝牙 A2dp 编码SBC、AAC、Aptx、LDAC、LHDC aduio音频概述(2)
  17. WRMPS经典Cookie欺骗漏洞批量拿下shell-黑客博客
  18. JMX : MXBean
  19. 新概念二册 lesson 3 一般过去式
  20. 一个40岁老码农的总结,奋斗没有意义,选择大于努力

热门文章

  1. 牛客网 在线编程 猫狗收容所
  2. 原始人java生存游戏_原始人人生模拟器
  3. public ServiceException() { super(); } public ServiceException(String message, Throwable cause,
  4. java内存模型---学习笔记
  5. java中volatile关键字---学习笔记
  6. 报表怎样实现滚动的公告效果?
  7. java实现插入排序 1
  8. 在Kubernetes Pod中使用Service Account访问API Server
  9. eclipse 国际化 $NON-NLS-1$ 含义
  10. JS调用打印机打印Web页面