2024-04-25 08:19:59 发布
网友
我使用的是ipython,代码如下:
image = zeros(MAX_X, MAX_Y) # do something complicated to get the pixel values... # pixel values are now in [0, 1]. imshow(image)
但是,生成的图像始终具有相同的分辨率,大约为(250x250)。我以为图像的尺寸是(MAX_xx MAX_Y),但事实似乎并非如此。我怎样才能让ipython给我一个更高分辨率的图像?
屏幕上显示图像的高度和宽度由figure大小和axes大小控制。
figure(figsize = (10,10)) # creates a figure 10 inches by 10 inches
轴
axes([0,0,0.7,0.6]) # add an axes with the position and size specified by # [left, bottom, width, height] in normalized units.
较大的数据数组将以与较小数组相同的大小显示,但单个元素的数量将更大,因此从这个意义上说,它们确实具有更高的分辨率。保存的图形的每英寸点数分辨率可以通过savefig的dpi参数来控制。
下面是一个可能会更清楚的例子:
import matplotlib.pyplot as plt import numpy as np fig1 = plt.figure() # create a figure with the default size im1 = np.random.rand(5,5) ax1 = fig1.add_subplot(2,2,1) ax1.imshow(im1, interpolation='none') ax1.set_title('5 X 5') im2 = np.random.rand(100,100) ax2 = fig1.add_subplot(2,2,2) ax2.imshow(im2, interpolation='none') ax2.set_title('100 X 100') fig1.savefig('example.png', dpi = 1000) # change the resolution of the saved image
# change the figure size fig2 = plt.figure(figsize = (5,5)) # create a 5 x 5 figure ax3 = fig2.add_subplot(111) ax3.imshow(im1, interpolation='none') ax3.set_title('larger figure') plt.show()
一个图形中轴的大小可以通过几种方式控制。我用了上面的subplot。也可以直接添加带有axes或gridspec的轴。
你可能在找pcolormesh,而不是imshow。前者的目的是将数据逐像素地绘制到空间中,而不是显示图像。
pcolormesh
imshow
屏幕上显示图像的高度和宽度由figure大小和axes大小控制。
轴
较大的数据数组将以与较小数组相同的大小显示,但单个元素的数量将更大,因此从这个意义上说,它们确实具有更高的分辨率。保存的图形的每英寸点数分辨率可以通过savefig的dpi参数来控制。
下面是一个可能会更清楚的例子:
一个图形中轴的大小可以通过几种方式控制。我用了上面的subplot。也可以直接添加带有axes或gridspec的轴。
你可能在找
pcolormesh
,而不是imshow
。前者的目的是将数据逐像素地绘制到空间中,而不是显示图像。相关问题 更多 >
编程相关推荐