Python Matplotlib 绘图 DPI 与图像尺寸对应关系及高清保存技巧

桃夭
桃夭
发布时间:2026-10-13| 6人浏览过
原创

本文详解 Matplotlib 中 DPI 参数对输出图像尺寸的影响,通过具体数值展示 DPI 与像素的线性关系。针对子图过多导致显示过小的问题,提供通过调整 figsize 参数按比例放大图像尺寸的有效解决方案,并附带处理二进制频谱数据生成高清 PNG 图片的代码示例。

Matplotlib DPI 与图像尺寸对应关系

直接切入主题,探讨 Matplotlib 中 DPI(每英寸点数)参数与输出图像物理尺寸及像素分辨率之间的具体对应关系。

当设置 dpi=1 时,若原始逻辑尺寸为 600×400,则输出图像的像素尺寸为 600×400。

当设置 dpi=2 时,对应像素尺寸扩大至 1200×800。

当设置 dpi=3 时,对应像素尺寸扩大至 1800×1200。

........

以 dpi=21 为例,计算公式为 (21×600) × (21×400),最终得到 12600×8400 的高分辨率像素尺寸。

生成高清频谱图片的代码实现

以下提供一段完整的 Python 代码示例,演示如何读取二进制数据并生成指定 DPI 的图片。


...............
...............
      plt_temp=y_axis
      plt_temp.resize(len(y_axis) , 1)
      plt_arr=np.concatenate((plt_arr,plt_temp ), axis=1)
      #print(self.plt_arr) 
      if plt_x%1000==0:
        print(plt_x)
      if plt_x%1000==0:
        cm='hot'
        norm = matplotlib.colors.Normalize(vmin=min, vmax=max) 
        map=plt.imshow(plt_arr,interpolation='nearest',cmap=cm,norm=norm, origin='upper')
        plt.xticks([])
        plt.yticks([])
        plt.axis('off')
        #plt.colorbar(mappable=map,ax=None,shrink=0.5, pad=0)
        plt.savefig("filename.png", dpi=1320)   #   加参数  ,bbox_inches='tight' ,pad_inches=0  可以得到窄边框图片
        #plt.show()print(plt_x)
    plt_x+=1
    
    
  temp_str=str(num_now)
    
  return donser_now_lable

............
............

代码逻辑涉及读取一个大小为 1.08GB 的二进制 bin 数据文件的部分内容。数据格式特征为:无文件头、采用小端模式、16位编码的频谱数据。程序目标是将这些数据处理后生名为 filename.png 的图片,并严格指定 dpi=1320 以保证输出质量。

解决子图显示过小的尺寸调整方案

补充知识点:在 Matplotlib 中如何精确指定图片大小以优化显示效果。

在使用 Matplotlib 进行绘图时,常遇到在单个面板中显示过多子图的情况,导致调用 plt.show() 时图像显示过小、细节难以辨认。

如图所示,未优化前的子图排列紧凑且尺寸过小,影响阅读体验。

此时,仅通过调整子图间距(subplots_adjust)往往无法根本解决问题,因为图像本身的像素尺寸并未增加。

常规调整间距的代码如下:plt.subplots_adjust(wspace=0.1, hspace=0.2)

因此,我们需要从根源上增大 Figure 对象的尺寸,即调整 figure 函数的参数。


plt. figure(figsize=(5,8))
# 可以按5比8的大致 比例增加来增大图片的像素
# 例如 plt. figure(figsize=(10,16))

figure(figsize=(5,8)) 中的第一个参数 5 代表列数比例,8 代表行数比例。若效果不佳,可尝试其他参数,但需保持大致相同的宽高比以维持布局协调。

按比例放大参数后,例如将 figsize 增大,图像的物理像素尺寸随之增加,显示效果得到显著改善。

经过上述调整,子图变得清晰易读,布局更加合理。

以上关于 Python Matplotlib 绘图 DPI 对应关系及高清保存方法的详解到此结束,希望能对读者有所帮助,欢迎参考并支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。