在matplotlib中改变figure的布局和大小实例

作者:cdqn10086 时间:2022-07-09 00:45:11 

以下来自Stack Overflow

在matplotlib中改变figure的布局和大小实例

在matplotlib中改变figure的布局和大小实例

从上面我们可以很清晰的看出应该如何使用matplotlib的figure方法。

补充知识:matplotlib 设置图形大小时 figsize 与 dpi 的关系

matplotlib 中设置图形大小的语句如下:

fig = plt.figure(figsize=(a, b), dpi=dpi)

其中:

figsize 设置图形的大小,a 为图形的宽, b 为图形的高,单位为英寸

dpi 为设置图形每英寸的点数

则此时图形的像素为:

px, py = a*dpi, b*dpi # pixels
# e.g.
# 6.4 inches * 100 dpi = 640 pixels

也就是说,同一像素尺寸的图形(比如 1200 * 600)可以有任意种不同的组合,比如:

figsize=(15,7.5), dpi= 80
figsize=(12,6) , dpi=100
figsize=( 8,4) , dpi=150
figsize=( 6,3) , dpi=200
etc.

但这些不同的组合,有什么区别呢?这取决于图中元素的大小。

线条,标记,文本等大多数元素都有以磅为单位的大小。Matplotlib 中 每英寸点数(ppi)为72,则宽度为 1 点的线将为 1/72 英寸宽,使用 fontsize 12 点的文本将是 12/72 寸高。

为了便于说明,用 matplotlib绘制相应的图形,如 表1 所示。

如果以英寸为单位更改图形大小,而 dpi 不变,较大的图形仍具有相同的元素大小。因此,改变图形尺寸就像拿一张不同尺寸的纸张一样,这样做当然不会改变用同一笔绘制的线条的宽度。通过表 1 中的图形2, 4, 6 的对比,可以明显的看出来这一点。

另一方面,更改dpi会缩放元素。在72 dpi时,1 宽度的线是 1 像素。在144 dpi时,这条线就是 2 像素。

span>因此,更大的dpi就像放大镜一样。所有元素都通过镜头的放大倍数进行缩放。 通过表 1 中的图形 1 3 5 的对比,可以看出这一点。

综上:

图形尺寸(figsize)确定图形的大小(以英寸为单位)。 这给出了轴(和其他元素)在图中的空间量。 较大的图形尺寸将允许显示更长的文本,更多的轴或更多的标记标签(表1中图形3与图形4,图形5与图形6的对比可看出,像素尺寸相同时,图形尺寸越大,所能容纳的内容越多)。

dpi 确定了图形每英寸包含的像素数,图形尺寸相同的情况下, dpi 越高,则图像的清晰度越高(表1中 1,3,5 对比可看出)

来源:https://blog.csdn.net/cdqn10086/article/details/72403899

标签:matplotlib,figure,布局,大小
0
投稿

猜你喜欢

  • 使用python批量修改XML文件中图像的depth值

    2023-03-05 12:59:06
  • RC4经典加密算法asp/VBs版本代码

    2008-02-17 17:32:00
  • pytorch中的 .view()函数的用法介绍

    2022-10-15 19:50:17
  • ASP处理XSLT转换XML的实现

    2008-10-20 18:37:00
  • 详解mysql中的存储引擎

    2024-01-27 05:53:15
  • Python3中的多行输入问题

    2023-02-06 13:11:23
  • MySQL数据库优化详解

    2024-01-23 12:51:55
  • JavaScript实现仿淘宝商品购买数量的增减效果

    2024-06-07 15:26:09
  • MySql添加新用户及为用户创建数据库和给用户分配权限方法介绍

    2024-01-29 01:03:10
  • 同时安装vs2005团队开发版和sql 2005企业版的方法(downmoon原作)

    2024-01-17 21:11:39
  • Git 教程之工作流程详解

    2022-03-28 13:04:45
  • python接入使用百度翻译流程

    2022-11-26 01:01:43
  • PHP基于phpqrcode生成带LOGO图像的二维码实例

    2023-11-23 23:47:18
  • 通用分页存储过程

    2007-11-28 13:08:00
  • 一个用Ajax做的用户名验证程序

    2007-10-21 20:40:00
  • 不到20行代码用Python做一个智能聊天机器人

    2021-07-21 08:43:40
  • ORACLE中的的HINT详解

    2024-01-26 23:29:53
  • 发个js从样式表取值的函数

    2008-05-20 12:23:00
  • css中的类和伪类

    2008-06-12 13:12:00
  • 官方是这样定义 DOCTYPE HTML PUBLIC 的

    2007-05-31 09:43:00
  • asp之家 网络编程 m.aspxhome.com