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

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

本文详解 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 相关产品和应用

全部下载

专题列表