我假设我有一个非常简单的问题,这让我在过去一小时内感到疯狂。因此,我正在尝试生成具有以下轴长x = 37,y = 614的等高线图。我可以生成轮廓图没有问题,但是当我添加一个颜色条时,图像会调整大小,我假设它是颜色条的大小。
没有彩条的图片:
带彩条的图片:
这个数字变得很大,我不知道为什么。 我如何绘制像我的第一个数字,但使用第二个数字的颜色方案和颜色条?
代码:
import matplotlib
import numpy as np
import matplotlib.cm as cm
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
from matplotlib import pylab
y = np.arange(1, 615)
x = np.arange(1, 37)
z = np.loadtxt('145_contact_matrix_605.txt')
fig = plt.figure()
ax = plt.subplot(111)
CS = ax.contour(x, y, z)
plt.clabel(CS, inline=1, fontsize=10)
# COLOUR BAR CODE
im_out = ax.imshow(z, cmap=cm.jet)
ax.matshow(z,cmap=plt.cm.jet)
axcolor = fig.add_axes([0.9,0.1,0.02,0.8]) # adjust these vaules to position colour bar
pylab.colorbar(im_out, cax=axcolor)
plt.show()
答案 0 :(得分:1)
imshow
命令改变了轴的纵横比,而不是颜色条。
imshow
假设您希望宽高比为1.0,以便数据坐标中的正方形显示为方形(即方形像素)。
如果您希望它的行为类似contour
,则只需指定aspect='auto'
。
ax.imshow(z, cmap=cm.jet)
您还应该移除ax.matshow
行(或使用它而不是imshow
)。实际上,你将有两个部分重叠并相互隐藏的图像。
如果您决定使用matshow
而不是imshow
,则还需要为其指定aspect='auto'
。