CMC*_*kai 5 python matplotlib ipython jupyter-notebook
在我目前的iPython中,matplotlib图以内联方式显示.我想要一种显示具有特定像素大小的图像的方法,因为我通常只使用像素而不打印任何东西.
我的屏幕PPI是208,所以我运行了这两段代码:
plt.figure(figsize=(2000/float(208), 1000/float(208)), dpi=208)
# other code here...
plt.savefig('my_fig.png', dpi=208)
Run Code Online (Sandbox Code Playgroud)
令我困惑的是:当我检查时my_fig.png,它实际上是2000像素乘1000像素,这就是我想要的.另外根据/sf/answers/553840521/,用于渲染到显示设备和渲染文件的DPI设置具有不同的默认值.这就是我必须添加dpi=208到该plt.savefig功能的原因.
但是,在浏览器中的iPython笔记本上呈现的图像要小得多.使用我的浏览器标尺,大约600乘300像素.
对两个函数使用相同的DPI,为什么iPython笔记本中的内嵌渲染图像太小,而我保存的图像处于我想要的正确分辨率?
请注意,我在Virtualbox中运行iPython(也是无头的),我不确定这是否会导致任何差异.
经过一些试验和错误后,为了获得内联渲染的正确大小,图形dpi需要为58.但即使这样,内联生成的图像也与我指定的像素数完全匹配.它总是+ - 10到20像素.
这可能是因为%matplotlib inline默认情况下将传递bbox_inches='tight'到plt.figure(...). 尝试以下操作,
调用后%matplotlib inline,
%config InlineBackend.print_figure_kwargs = {'bbox_inches':None}
然后创建你的情节。这就是它为我做的事情:
| 归档时间: |
|
| 查看次数: |
723 次 |
| 最近记录: |