有一种方法来自动调整的图,以适当地配合包含曲线在matplotlib / pylab图像?

我创建根据所使用的数据在纵横比不同热图(次)曲线。

我知道我可以计算纵横比和手动设置,但肯定有一个更简单的方法是什么?

有帮助吗?

解决方案

使用的 bbox_inches = '紧'

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm

X = 10*np.random.rand(5,3)

fig = plt.figure(figsize=(15,5),facecolor='w') 
ax = fig.add_subplot(111)
ax.imshow(X, cmap=cm.jet)

plt.savefig("image.png",bbox_inches='tight',dpi=100)

...仅保存图像时虽然没有表现出他们的作品。

其他提示

仅仅使用方面= '自动' 时调用imshow

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm

X = 10*np.random.rand(5,3)
plt.imshow(X, aspect='auto')

它的工作原理,即使它仅仅是用于示出和不保存

这样做的另一种方法是使用matplotlib tight_layout功能

import matplotlib.pyplot as plt
fig,(ax) = plt.subplots(figsize=(8,4), ncols=1)
data = [0,1,2,3,4]
ax.plot(data)
fig.tight_layout()
fig.show()

你的意思是改变图像的大小或情节中是visable面积?

一图的大小可随被设置 Figure.set_figsize_inches 。 另外, SciPy的食谱有改变图像的大小,其包含一个约多个图像部分中的条目每图。

另外看看这个问题

可以尝试使用轴( '缩放')

import matplotlib.pyplot as plt
import numpy

#some dummy images
img1 = numpy.array([[.1,.2],[.3,.4]]) 
img2 = numpy.array([[.1,.2],[.3,.4]])

fig,ax = plt.subplots()
ax.imshow(img1,extent=[0,1,0,1])
ax.imshow(img2,extent=[2,3,0,1])
ax.axis('scaled') #this line fits your images to screen 
plt.show()

也有可能 ax.autoscale 以使用与斧对象

ax.autoscale(enable=True) 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top