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 像素。因此,更大的dpi就像放大镜一样。所有元素都通过镜头的放大倍数进行缩放。 通过表 1 中的图形 1 3 5 的对比,可以看出这一点。
综上:
- 图形尺寸(figsize)确定图形的大小(以英寸为单位)。 这给出了轴(和其他元素)在图中的空间量。 较大的图形尺寸将允许显示更长的文本,更多的轴或更多的标记标签(表1中图形3与图形4,图形5与图形6的对比可看出,像素尺寸相同时,图形尺寸越大,所能容纳的内容越多)。
- dpi 确定了图形每英寸包含的像素数,图形尺寸相同的情况下, dpi 越高,则图像的清晰度越高(表1中 1,3,5 对比可看出)
1 |
2 |
3 |
4 |
5 |
6 |
易混乱的点
由表 1 中的 1,3,5 对比可看出,明明是相同尺寸的图片,可显示出来大小却差异极大,是不是说明 figsize 的设置根本没用?
这主要是因为图形在屏幕中的显示是以像表为基准的,像素点越高,尺寸看起来也就越大。表 1 中的 1,3,5,其 尺寸相同, dpi 越大,则像素也就越大,因此图形整个看起来也就越大。
为了验证这个问题,可以将上述 6 个图形插入到 word 中,如下图所示。从图中可看出,figsize 相同的图形,其大小相同,只不过 dpi 越高,图像越清晰。也就是说 figsize 的设置可以在打印或者排版时发挥作用。
最后,附上画图的相关代码供参考:
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/1/27 14:47 # @Author : 木子识时务 # @Site : # @File : 图形尺寸设置 # @Software: PyCharmimport matplotlib.pyplot as pltdef plot(fs, dpi_set):plt.figure(figsize=fs, dpi=dpi_set)plt.title("size:{}, dpi:{}".format(fs, dpi))plt.plot([0, 1, 2, 3], [3, 4, 2, 5])plt.savefig(str(fs) + "-" + str(dpi_set) + ".png")if __name__ == "__main__":figsize = (2, 2)for i in range(1, 4):plot(figsize, i*72)for i in [2, 4, 6]:plot((i, i), 72)
画图程序
转载于:https://www.cnblogs.com/lijunjie9502/p/10327151.html
matplotlib 设置图形大小时 figsize 与 dpi 的关系相关推荐
- python中figsize什么意思_matplotlib 设置图形大小时 figsize 与 dpi 的关系
matplotlib 中设置图形大小的语句如下: fig = plt.figure(figsize=(a, b), dpi=dpi) 其中: figsize 设置图形的大小,a 为图形的宽, b 为图 ...
- 英寸和厘米的交互python_matplotlib 设置图形大小时 figsize 与 dpi 的关系
matplotlib 中设置图形大小的语句如下: fig = plt.figure(figsize=(a, b), dpi=dpi) 其中: figsize 设置图形的大小,a 为图形的宽, b 为图 ...
- python中figsize什么意思_python中figsize什么意思_matplotlib 设置图形大小时 figsize 与 dpi 的关系...
matplotlib 中设置图形大小的语句如下: fig = plt.figure(figsize=(a, b), dpi=dpi) 其中: figsize 设置图形的大小,a 为图形的宽, b 为图 ...
- python画线调整边框_使用matplotlib更改图形大小时,缩放图例框边框、虚线和虚线...
我正在尝试使用matplotlib来准备一些要发布的图形.为了使字体大小与手稿的文本相匹配,我首先尝试以最终大小创建图形,以便在插入手稿时避免缩放图形.在 我遇到的问题是,由于图形非常小,我可以缩放字 ...
- 学计算机电脑屏幕小可以吗,电脑屏幕大小怎么调好 设置桌面大小时要注意哪些要点...
电脑屏幕要在合适的时候看起来才会比较舒服的,有很多人都找适合自己电脑屏幕大小设置,至于图片或大或小,这个要根据自己的需求来设置.下面小编就来给大家介绍一下电脑屏幕大小怎么调好及设置桌面大小时要注意哪些 ...
- html字体高度怎么调,当在CSS中设置字体大小时,字母的真实高度是多少?
关于这个问题的一些背景 在金属上创建信件时,em指的是每个块的尺寸,该字母将被刻上,这个大小由资本M确定,因为它通常占用最多的空间. 现在有一天,字体开发者在计算机上创建自己的字体,而没有物理金属的限 ...
- python不带颜色的图形_如何使用Matplotlib设置图形背景颜色的不透明度 - python
我一直在玩Matplotlib,无法弄清楚如何更改图形的背景颜色,或者如何使背景完全透明. 参考方案 如果只希望图形和轴的整个背景都是透明的,则在使用transparent=True保存图形时,只需指 ...
- python plot 图像大小_设置matplotlib图像的figsize和dpi
我们可以通过两个参数来控制matplotlib图像的大小,在创建figure对象的时候,有figsize和dpi. figsize是一个tuple,用来指定width和height的inch: dpi ...
- 数据分析-Jupyter,Matplotlib介绍-Matplotlib绘制图形
数据分析 Jupyter介绍 Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序.如在编程过程中需要编写说明文档,可 ...
最新文章
- 第二讲 完全背包问题(对背包九讲的学习)
- CentOS7.X的系统管理、安全设置及系统优化思路
- Java_Object类
- 使用Docker-容器命令案例1
- 前端学习(3015):vue+element今日头条管理--自定义验证规则
- redis高级命令2
- 【flink】Flink 中的木桶效应:单个 subtask 卡死导致整个任务卡死
- paip.性能跟踪profile原理与架构与本质-- python扫带java php
- SAE学习-使用SAE的Storage服务存储图片
- 学python语言有前途吗-在成都学Python有发展前景吗?
- JAVA转smali软件_Java2Smali(Java代码转Smali工具)
- 当我在linux图形界面终端输入startx,我在干什么
- 遍历Map集合的四种方式
- python图形绘制星空图_绘图.md · 不是我/PyQt5-Chinese-tutorial - Gitee.com
- matlab if语句小于等于,matlab的if语句运算符与或怎么用
- 计算机网络谢希仁第七版 第五章 答案
- navicat12No All Pattern Found!File Already Patched。
- Python爬虫案例:爬取必应壁纸
- 微信聊天记录如何恢复
- 1000瓶无色无味的药水,其中有一瓶毒药,10只小白鼠拿过来做实验。喝了无毒的药水第二天没事儿,喝了有毒的药水后第二天会死亡。如何在一天之内(第二天)找出这瓶有毒的药水?
热门文章
- ID3 Algorithm for Decision Trees
- SQL Server 数据库的维护(一)__存储过程(procedure)
- Android下的动画
- 代码农民从做事情的经验
- Java中判断两字符是否相等?
- JavaScript常用函数
- linux下apache+SVN搭建完美版
- 下载r包IlluminaHumanMethylation450kanno.ilmn12.hg19
- 蓝桥杯:基础练习 特殊的数字
- swoole必须和PHP使用吗,php有必要使用swoole吗