Bootstrap

python中plt改变图像尺寸_Matplotlib中图像大小设置

Matplotlib中图像大小设置

2019-10-15 23:53:30 来源: 晴天小雨

0

摘要:Matplotlib中figsize是设置图形大小的参数,接收一个元祖,内含两个元素,分别代表图形的宽和高,同时也可以注意到还有一个参数dpi,这两者有什么区别呢,详见正文!

Matplotlib设置图形大小的语句

fig = plt.figure(figsize=(width, height), dpi=dpi)

其中,figsize设置图形的大小,width代表图形的宽,height代表图形的高;

dpi设置图形每英寸点数(ppi);

此时图形的像素为:

px, py = width * dpi, height  * dpi

同一像素尺寸的图形可以有不同的表示

比如 1200 * 600

figsize=(15, 7.5), dpi=80

figsize=(12, 6), dpi=100

figsize=(8, 4), dpi=150

figsize=(6, 3), dpi=200

图中元素的大小

线条、标记、文本等大多数元素都有以磅为单位的大小。Matplotlib中每英寸点数为72,而宽度为1点的线将为1/72英寸宽,fontsize为12点的文本为12/72存高。

如果以英寸为单位更改图形大小,而 dpi 不变,较大的图形仍具有相同的元素大小。因此,改变图形尺寸不会改变用同一笔绘制的线条的宽度。如下图所示:

更改dpi会缩放元素。在72 dpi时,1 宽度的线是 1 像素。在144 dpi时,这条线就是 2 像素。因此,更大的dpi就像放大镜一样。所有元素都通过镜头的放大倍数进行缩放。

ps:(近视的你肯定看不出图片的差距,因为不近视的也看不出啥区别,笑!)

结论

图形尺寸(figsize)确定图形的大小(以英寸为单位)。

dpi 确定了图形每英寸包含的像素数,图形尺寸相同的情况下, dpi 越高,则图像的清晰度越高

附:图形复现代码

import matplotlib.pyplot as plt

if __name__ == '__main__':

data = [(x, x**2) for x in range(0, 500, 50)]

dpi_list = [72, 72, 72, 144]

width_list = [8, 10, 10, 10]

subplot_list = list(range(1, 7))

for width, dpi, in zip(width_list, dpi_list):

fig = plt.figure(figsize=(width, 6), dpi=dpi)

plt.title("size:{}, dpi:{}".format((width, 6), dpi))

plt.grid(True)

plt.plot(data)

plt.show()

收藏

已收藏取消收藏

登录发表你的评论

0条评论

;