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条评论