文章目录

  • 前言
  • 使用步骤 提示:功能可相互独立,不必按此目录顺序执行
    • 1.引入库
      • 1.1 绘制初始图像
    • 2.局部放大图(调整坐标轴显示范围、翻转坐标轴、隐藏坐标轴、边框改变颜色、隐藏边框)
      • 2.1 绘制嵌入绘制局部放大图的坐标系
      • 2.2 在子坐标系中绘制原始数据
      • 2.3 调整子坐标系的显示范围 ( 调整坐标轴显示范围)
      • 2.4 建立父坐标系与子坐标系的连接线
      • 2.5 父坐标系翻转y坐标轴,为了与子图显示方向一致 (翻转坐标轴)
      • 2.6 调整子坐标系边框 (边框颜色、边框隐藏)
      • 2.7 子坐标系隐藏坐标轴(隐藏坐标轴)
      • 2.8 局部放大图效果展示
    • 3 设置绘图横纵比
    • 4 画图占满整个画图,无白边
  • 参考资料

前言

提示: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' : 10borderpad: 在插图坐标空间与bbox_to_anchor之间填充
默认值是0.5 单位是axes的字体尺寸,默认字体尺寸是10points,所以borderpad=0.5等于填充5points
想要x0 y0 与原点对齐,则设置 borderpad=0bbox_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_yaxis()

2.6 调整子坐标系边框 (边框颜色、边框隐藏)

# 4个边框 top、left、right、bottom
#设置所有边框颜色为红色
axins.spines[:].set_color('r')
#隐藏右上边框
axins.spines['right'].set_visible(False)
axins.spines['top'].set_visible(False)

2.7 子坐标系隐藏坐标轴(隐藏坐标轴)

注意:axins.set_axis_off()会影响轴线,刻度线,刻度标签,网格和轴标签

#去刻度线和标签
axins.set_xticks([])
axins.set_yticks([])

2.8 局部放大图效果展示

3 设置绘图横纵比

使用 matplotlib.axes.Axes.set_aspect() 函数设置长宽比
如果在函数中使用等于作为长宽比,则得到的图在 X 轴和 Y 轴上从数据点到绘图单位的缩放比例相同

使用以下命令手动设置纵横比:
axes.get_data_ratio() 获取原始绘图数据的比率,倒数的值传递给 set_aspect()。

axes.set_aspect(1.0/(axes.get_data_ratio()), adjustable='box')

改变横纵比相等 效果展示

4 画图占满整个画图,无白边

w=image_array[z,...].shape[0]
h=image_array[z,...].shape[1]
dpi=100
fig,axes=plt.subplots(figsize=(w/dpi,h/dpi),dpi=dpi)
axes=fig.add_axes([0,0,1,1])
axes.set_axis_off()axes.imshow()
plt.savefig('./test.png', bbox_inches='tight')

参考资料

【Matplotlib】 局部放大图
如何在 Matplotlib 中绘制等轴的正方形图
Matplotlib绘图(一)-边框线及坐标轴的设置
Matplotlib示例.256 如何绘制画中画效果
matplotlib隐藏刻度线、标签和边线
看回答:python matplotlib savefig的图片如何充满整个画布

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

  1. relativelayout设置边框_Android表格布局之设置边框

    Android表格布局本身没有边框,不过可以通过背景色的设置可以实现表格边框的显示. 首先可以设置TableRow的背景色,然后设置内容的背景色.根据它们的颜色差就出现了边框.只要微调Content与 ...

  2. html如何设置边框为圆点虚线,如何设置html虚线边框的方法

    如何设置html虚线边框的方法 如何设置html虚线边框的方法 用到CSS样式和HTML标签元素 为了对html不同标签加边框虚线,我们选择几个常用标签对齐设置边框虚线效果. 1.html常用标签 p ...

  3. 计算机考试中如何设置表格外边框,Excel表格中怎么为单元格区域设置边框

    在Excel表格工作表中,我们可以为选中的单元格区域设置各种类型的边框.Excel表格中为单元格区域设置边框的方法其实很简单,下面由学习啦小编告诉你! Excel表格中为单元格区域设置边框的方法 01 ...

  4. css修饰边框为虚线,css如何设置虚线边框css虚线样式?css设置虚线边框的方法示例...

    首页 >web前端>css教程>正文 css如何设置虚线边框?css设置虚线边框的方法示例 原创2018-10- 在网页布局中,有时候为了整体网页的美观可能需要设置虚线边框,那么虚线 ...

  5. 如何设置jinternalframe无边框_word文档美化技巧:加个边框提升版面颜值

    编按:说到Word,大多数人会觉得不就是个打字的,能够承载内容即可.于是,内容密密麻麻地录入.不过,对于有点强迫症的爱美人士来说,总会觉得差了点什么,于是,会对文档小小地美化一下,就比如,为文档页面加 ...

  6. MATLAB使用技巧之局部放大图的制作及文本箭头的便捷设置

    MATLAB使用技巧之局部放大图的制作及文本箭头的便捷设置 文章目录 MATLAB使用技巧之局部放大图的制作及文本箭头的便捷设置 制作局部放大图的方法 文本箭头的便捷设置 小结 本文主要介绍如何在MA ...

  7. Matplotlib实用绘图技巧总结

    在日常的业务数据分析 ,可视化是非常重要的步骤.这里总结了matplotlib常用绘图技巧,希望可以帮助大家更加更加高效的.美观的显示图表.作者:北山啦 Matplotlib 是 Python 的绘图 ...

  8. Matplotlib使用小技巧(Python3.5版)

    Matplotlib使用小技巧(Python3.5版) 参考链接https://mp.weixin.qq.com/s/aMPH4ABeNlRJ5kBWE-vGPg 1.中文显示 Matplotlib默 ...

  9. 举个栗子!Tableau 技巧(202):用参数为图表设置开关按钮

    做数据汇报时,很多时候需要分步骤呈现数据.数据粉反馈的需求:Tableau 视图中的部分图表是否也能设置一个开关,需要它时再让它呈现出来,像 PPT 那样. 其实,这个想法在 Tableau 是可以实 ...

最新文章

  1. ASP.NET的用户控件
  2. React 性能优化之批量处理 unstable_batchedUpdates
  3. Spring 5的最终功能发行版即将来临
  4. 短代码的java打地鼠_使用JavaScript实现网页版Pongo设计思路及源代码分享
  5. 从linux刷到windows,我为什么从Linux重新回归到Windows平台
  6. 网易将在三亚设立海南总部 建设元宇宙产业基地
  7. NLP纠错 | 恶意短信变体字还原、鲁棒性过滤与文本纠错竞赛概述与简单变体实现...
  8. 【电源科普】负载调整率
  9. mac 用 VMware Fusion 安装 ubuntu
  10. 大学计算机应用基础教程读后感,计算机应用基础的课程学习体会
  11. 魔兽n服务器网站,wowN服如何进入_魔兽世界Nostalrius服务器入驻攻略_快吧游戏
  12. k60正交解码FTM1 FTM2 困惑
  13. python(摄氏度和华氏度的转换)
  14. 爬虫——获取页面源代码
  15. ubuntu 下的开机启动项管理命令
  16. Laravel5.4中文分词搜索-使用 Laravel Scout,Elasticsearch,ik 分词(三)
  17. 大翻盘!超80亿美元Java侵权案落槌,谷歌胜诉!
  18. 力扣 417. 太平洋大西洋水流问题
  19. linux共享打印机smb,centos7 安装cups+smb共享打印机
  20. java的方法decompress_Java LZ4SafeDecompressor.decompress方法代码示例

热门文章

  1. 长沙农商银行·2021长沙红色半程马拉松赛报名正式启动啦
  2. matlab如何将帮助变成简体中文
  3. 美团饿了么外卖返利app定制开发小程序公众号外卖CPS淘客返利系统
  4. 【电气专业知识问答】问:厂用电动机如何选择?
  5. 成为明星程序员的10个提示
  6. Wish | IT桔子
  7. android midi 分析,MIDI 架构  |  Android 开源项目  |  Android Open Source Project
  8. IOS状态栏和导航栏的控制问题
  9. 开始记录日常学习,2021年希望更进一步!
  10. 面对Spring Boot 3最低支持Java17如洪水猛兽袭来,何去何从