python - 如何使用 matplotlib 中的子图控制紧凑图形的确切大小?
问题描述
我编写了这段代码来生成一个子图网格,该网格具有以英寸为单位指定的特定图形大小。第 12 行指定图形宽度(约 150mm)。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
def img(fig,grid):
ax = fig.add_subplot(grid)
plot = ax.pcolormesh(np.random.random((10,10)), vmin=0, vmax=1)
return ax,plot
rows = 3
cols = 4
x_inches = 5.905 # ~150mm
y_inches = x_inches*(rows/cols)
dpi = 96
fig = plt.figure(1, figsize = (x_inches,y_inches), dpi = dpi)
layout = gridspec.GridSpec(ncols = cols, nrows = rows, figure = fig)
for m in range(rows):
for n in range(cols):
img(fig,layout[m,n])
plt.subplots_adjust(hspace = 0.4, wspace = 0.4)
plt.savefig('example.pdf', dpi = dpi, bbox_inches='tight', pad_inches = 0)
plt.show()`
该代码会生成一个 .pdf 文件,其中包含矢量图:
但是,当我查看 .pdf 文件的文档属性时,它说这个数字是 125.4 x 93.9 毫米
通过将第 24 行更改为:plt.savefig('example.pdf', dpi = dpi, pad_inches = 0)
结果数字是:
在这种情况下,该图具有我设置的尺寸,但是没有紧密的方面。
如何生成具有指定大小和紧凑框的图形?
提前致谢!
解决方案
推荐阅读
- scala - 如何通过 sqlContext 调用大的 hqls 文件?
- python - 0 Python-Opencv 错误:错误:(-215) scn == 3 || 函数 cvtColor 中的 scn == 4
- c++ - 将参数传递给 std::thread、C++ 的区别
- apache-kafka - 通过kafka复制文件并防止重复数据
- sql - SQL Server 维护计划不起作用 - 没有错误
- sql - 将 Big Query Table 架构从字符串 (YYYY-MM-DD HH:MM:SS TIMEZONE) 修改为日期时出现无效日期错误
- typescript - 在打字稿角度2中设置变量
- java - 将 APK 复制到设备失败
- css - 如何在反应中为父类设置页面特定样式
- python - x 的 Sigmoid 为 1