Matplotlib基础(part2)--图形对象
学习笔记,这个笔记以例子为主。
编辑器: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)--图形对象相关推荐
- python Numpy 的基础用法以及 matplotlib 基础图形绘制
python Numpy 的基础用法以及 matplotlib 基础图形绘制 1. 环境搭建 1.1 Anaconda anaconda 集成了数据分析,科学计算相关的所有常用安装包,比如Numo ...
- Matlab绘图基础——利用axes(坐标系图形对象)绘制重叠图像 及 一图多轴(一幅图绘制多个坐标轴)
Matlab绘图基础--利用axes(坐标系图形对象)绘制重叠图像 及 一图多轴(一幅图绘制多个坐标轴) - 司徒鲜生 - 博客园 Matlab中axes函数解析_ljh0302的博客-CSDN博客_ ...
- Matplotlib全部基础可视化图形及实现代码(共11种图形)
Matplotlib全部基础可视化图形及实现代码 开始先来一段网络抄袭的的Matplotlib介绍 Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的 ...
- Matplotlib figure图形对象
Matplotlib figure图形对象 通过前面的学习,我们知道matplotlib.pyplot模块能够快速地生成图像,但如果使用面向对象的编程思想,我们就可以更好地控制和自定义图像. 在 Ma ...
- 超详细——matplotlib基础
Matplotlib 基础 文章目录 Matplotlib 基础 安装 matplotlib 架构 matplotlib的基本用法 一.线性图 二.柱状图 三.散点图 四.等高线图 五.处理图片 六. ...
- 使用Matplotlib绘制3D图形
本文是Matplotlib的第二篇文章,会讲解如何通过Matplotlib绘制3D图形.关于Matplotlib的第一篇文章,请看这里:Python绘图库Matplotlib入门教程. 测试环境 由于 ...
- python:matplotlib基础(2)
#%% md ### 图片灰度处理 #%% import numpy as np import pandas as pd import matplotlib.pyplot as plt %matplo ...
- python:matplotlib基础(1)
Matplotlib中的基本图表包括的元素 + x轴和y轴 水平和垂直的轴线 + x轴和y轴刻度 刻度标示坐标轴的分隔,包括最小刻度和最大刻度 + x轴和y轴刻度标签 表示特定坐标轴的值 ...
- python:matplotlib基础(3)
#%% md ### 图片灰度处理 #%% md 三种方法 #%% import matplotlib.pyplot as plt %matplotlib inline #%% import nump ...
最新文章
- 升级 90天 vs2008 在win2008下。
- 文巾解题 01.05. 一次编辑
- SAP UI5 attachment control relative url binding
- 字节流读数据 一次读一个字节
- LeetCode刷题(40)--Search a 2D Matrix
- 游戏版号重新发放,开发者可以松口气了!| 畅言
- maven 排除某个类_java-如何从Maven依赖项中排除某些程序包(在JAR中)?
- linux向用户发送消息,Linux终端中向记录的用户发送消息
- 虚拟机安装ubuntu18.04及其srs服务器的搭建
- python实现卷积神经网络_【455】Python 徒手实现 卷积神经网络 CNN
- 枪毙ctfmon.exe 恢复你的默认输入法
- 前端 - token 是什么?为什么每次请求头(HEADS)里要携带它?
- linux鼠标手势双dock,Linnx Mint 上使用触摸板手势
- 失效而后犬儒【2019.05.15报告记录】
- python两行代码实现转换视频格式,以flv转换mp4为例
- Android 蓝牙 A2dp 编码SBC、AAC、Aptx、LDAC、LHDC aduio音频概述(2)
- WRMPS经典Cookie欺骗漏洞批量拿下shell-黑客博客
- JMX : MXBean
- 新概念二册 lesson 3 一般过去式
- 一个40岁老码农的总结,奋斗没有意义,选择大于努力
热门文章
- 牛客网 在线编程 猫狗收容所
- 原始人java生存游戏_原始人人生模拟器
- public ServiceException() { 		super(); 	} 	public ServiceException(String message, Throwable cause,
- java内存模型---学习笔记
- java中volatile关键字---学习笔记
- 报表怎样实现滚动的公告效果?
- java实现插入排序 1
- 在Kubernetes Pod中使用Service Account访问API Server
- eclipse 国际化 $NON-NLS-1$ 含义
- JS调用打印机打印Web页面