我有以下数据
1.105 0.919 0.842 0.715 0.704 0.752 0.827 1.049 0.584
0.998 0.931 0.816 0.787 0.803 0.856 0.782 0.872 0.710
1.268 1.189 1.036 0.984 0.847 0.948 1.083 0.864 0.792
我用它来绘制imshow()
The result looks like this:
这是我的代码:
from numpy import*
import matplotlib.cm as cm
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
shape=(3,9)
velocity=zeros(shape)
fig = plt.figure(figsize=(16, 12), dpi=100)
ax1 = fig.add_subplot(111,aspect='equal')
# ax1.set_yticks([int(100*j) for j in range(0,4)])
ax1.set_yticks([int(j) for j in range(0,4)])
ax1.set_xticks([int(j) for j in range(-4,5)])
for label in ax1.get_xticklabels() + ax1.get_yticklabels():
label.set_fontsize(15)
for tick in ax1.get_xticklines() + ax1.get_yticklines():
tick.set_markeredgewidth(2)
tick.set_markersize(6)
ax1.set_aspect("equal")
velocity=loadtxt("fieldvelocitybot-300-100-100_400.dat")
im = plt.imshow(velocity, cmap=cm.jet, interpolation='nearest',origin='lower',vmin=0,vmax=1.7, extent=[-4.50,4.50,0.,3.00])
divider = make_axes_locatable(ax1)
cax = divider.append_axes("right", size="2.5%", pad=0.3)
cb=plt.colorbar(im,cax=cax)
cb.set_label('Speed [$m/s$]')
plt.savefig("speed_400.png")
plt.close(fig)
My problem is: How to show just the results from -4 to 4? Intuitively I thought of changing extent=[-4.00,4.00,0.,3.00]
, but the axis is then just shifted. The result is like this: