我正在尝试在同一张图中绘制一个图像(使用 matplotlib.imshow
)和散点图。尝试这样做时,图像似乎比散点图小。下面是一个简单的示例代码:
import matplotlib.pyplot as plt
import numpy as np
image = np.random.randint(100,200,(200,200))
x = np.arange(0,10,0.1)
y = np.sin(x)
fig, (ax1, ax2) = plt.subplots(1,2)
ax1.imshow(image)
ax2.scatter(x,y)
plt.show()
这将得到以下图形:
我该如何使这两个子图具有相同的高度?(我想还包括宽度)
fig=plt.figure()
gs=GridSpec(1,2)
ax1=fig.add_subplot(gs[0,0])
ax2=fig.add_subplot(gs[0,1])
ax1.imshow(image)
ax2.scatter(x,y)
但是这样会得到相同的结果。我也尝试使用以下方法手动调整子图的大小:
fig = plt.figure()
ax1 = plt.axes([0.05,0.05,0.45,0.9])
ax2 = plt.axes([0.55,0.19,0.45,0.62])
ax1.imshow(image)
ax2.scatter(x,y)
通过试错我可以将两个子图调整到正确的大小,但是如果更改整个图形的大小,则子图的大小将不再相同。
有没有一种方法可以使imshow
和scatter
在图中呈现相同的大小而不必手动更改坐标轴大小?
我正在使用Python 2.7和matplotlib 2.0.0。
aspect='auto'
解决了问题,谢谢。 - DavidG