matplotlib 的使用技巧(局部放大图、坐标轴设置、边框设置、横纵比设置)


前言

提示:Matplotlib 使用技巧
局部放大图
设置绘图横纵比
边框改变颜色、隐藏边框
翻转坐标轴、隐藏坐标轴、调整坐标轴显示范围


提示:以下是本篇文章正文内容,下面案例可供参考

使用步骤 提示:功能可相互独立,不必按此目录顺序执行

1.引入库

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.inset_locator import mark_inset
from mpl_toolkits.axes_grid1.inset_locator import inset_axes

1.1 绘制初始图像

image = sitk.ReadImage('xxx.nii')  # <class 'SimpleITK.SimpleITK.Image'> 支持dcm\nrrd\nii
image_array = sitk.GetArrayFromImage(image)  # z,y,x shape z*512*512
fig, axes = plt.subplots()
axes.imshow(image_array[8,...], cmap='gray')

在这里插入图片描述

2.局部放大图(调整坐标轴显示范围、翻转坐标轴、隐藏坐标轴、边框改变颜色、隐藏边框)

2.1 绘制嵌入绘制局部放大图的坐标系

axins = inset_axes(axes, width="50%", height="50%",loc='upper right',
				   borderpad=0,
                   bbox_to_anchor=(0, 0, 1, 1),
                   bbox_transform=axes.transAxes)

inset_axes 参数说明
注意:bbox外的width height是对于bbox里的

axes:父坐标系
axins:子坐标系

width, height:子坐标系的宽度和高度(百分比形式或者浮点数个数)
	 浮点数:单位英寸
	 百分比:相对于axes的bbox的比例
	 
loc:子坐标系的位置
	'upper right' : 1,
	'upper left' : 2,
	'lower left' : 3,
	'lower right' : 4,
	'right' : 5,
	'center left' : 6,
	'center right' : 7,
	'lower center' : 8,
	'upper center' : 9,
	'center' : 10

borderpad: 在插图坐标空间与bbox_to_anchor之间填充
默认值是0.5 单位是axes的字体尺寸,默认字体尺寸是10points,所以borderpad=0.5等于填充5points
想要x0 y0 与原点对齐,则设置 borderpad=0

bbox_to_anchor:边界框,四元数组(x0, y0, width, height)
bbox_transform:从父坐标系到子坐标系的几何映射

固定坐标系的宽度和高度以及边界框,分别设置loc为左上、左下、右上(默认)、右下和中间,效果图如下:
在这里插入图片描述
上图为转载并进行修改:【Matplotlib】 局部放大图

2.2 在子坐标系中绘制原始数据

和父坐标系的画图一致

axins.imshow(image_array[z,:,:])

2.3 调整子坐标系的显示范围 ( 调整坐标轴显示范围)

# 调整子坐标系的显示范围
axins.set_xlim(200, 250)
axins.set_ylim(100, 150)

2.4 建立父坐标系与子坐标系的连接线

# 建立父坐标系与子坐标系的连接线
# loc1 loc2: 坐标系的四个角 1 (右上) 2 (左上) 3(左下) 4(右下)
# facecolor或fc - mpl color spec,默认为None,无颜色为'none'。内部颜色
# edgecolor或ec - mpl颜色规范,默认为None,无颜色为'none'。 外部颜色(可理解为边线)
# lw 线宽
mark_inset(axes, axins, loc1=2, loc2=4, fc="none", ec='r', lw=1)

2.5 父坐标系翻转y坐标轴,为了与子图显示方向一致 (翻转坐标轴)

#翻转y坐标轴
axes.invert_
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值