zoukankan      html  css  js  c++  java
  • 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 对比可看出)
  • 相关阅读:
    Linux概念与体系阅读笔记
    iOS缓存
    iOS开发笔记系列-基础3(多态、动态类型和动态绑定)
    在进入新版本 的时候,进行推送引导
    手机号验证
    通过UIView对象获取该对象所属的UIViewController(转)
    支付宝和微信支付的各种填坑
    IOS开发简单登录LoginViewController、注册RegisterViewController、UcenterViewController功能实现方法
    iOS 注册登录页面
    多媒体元素的使用
  • 原文地址:https://www.cnblogs.com/wind666/p/11037536.html
Copyright © 2011-2022 走看看