python imshow调整比例_强制pyplot.imshow()生成更高分辨率的图像

I have an NxN array that I am plotting in Python using matplotlib.pyplot.imshow(). N will be very large and I want my final image to have resolution to match. However, in the code that follows, the image resolution doesn't seem to change with increasing N at all. I think that imshow() (at least how I'm using it) has a fixed minimum pixel size that is larger than that needed to show my NxN array with full resolution.

import numpy as np

import matplotlib.pyplot as plt

from matplotlib import cm

array = np.loadtxt("output.dat",unpack=True)

plt.figsize=(30.0, 30.0)

im = plt.imshow(array,cmap='hot')

plt.colorbar(im)

plt.savefig("mandelbrot.pdf")

As you can see in the code above, I've tried messing with plt.figsize to try and increase resolution but to no avail. I've also tried various output formats (.pdf, .ps, .eps, .png) but these all produced images with lower resolution than I wanted. The .ps, .eps, and .pdf images all looked the exact same.

First, does my problem exist with imshow() or is there some other aspect of my code that needs to be changed to produce higher resolution images?

Second, how do I produce higher resolution images?

解决方案

plt.figsize() will only change the size of the figure in inches while keeping the default dpi. You can set the resolution of the figure by passing the dpi keyword argument when you save the figure:

fig.savefig('filename.extension', dpi=XXX)

So if you have a figure size of 4x6 and save it with dpi=300 you'll end up with an image with 1200x1800 resolution.

You can also set the default figure size and dpi with matplotlibrc.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值