Python 如何减少matplotlib中的颜色栏宽度?

Python 如何减少matplotlib中的颜色栏宽度?,python,matplotlib,ipython,Python,Matplotlib,Ipython,我在ipython笔记本中使用两个导入的数据集绘制了一个图&我为x轴制作了一个数组,但是颜色条有点厚,我不喜欢。有没有办法让它更苗条 #import packages import numpy as np #for importing u array import matplotlib.pyplot as plt #for plotting %matplotlib inline th = np.loadtxt("MT3_th.dat") #imports data f

我在ipython笔记本中使用两个导入的数据集绘制了一个图&我为x轴制作了一个数组,但是颜色条有点厚,我不喜欢。有没有办法让它更苗条

#import packages
import numpy as np              #for importing u array
import matplotlib.pyplot as plt #for plotting
%matplotlib inline

th = np.loadtxt("MT3_th.dat") #imports data file- theta pert.
pi = np.loadtxt("MT3_pi.dat") #imports data file- pressure pert.
k  = np.loadtxt("MT3_z.dat")  #imports data file- height
i = np.linspace(-16.,16.,81)  #x-axis array
x, z = np.meshgrid(i, k)

th[th == 0.0] = np.nan #makes zero values for th white
clevels = [0.5, 1, 1.5, 2, 2.5, 3.]

fig = plt.figure(figsize=(12,12))
thplot = plt.contourf(x, z, th, clevels, cmap=plt.cm.Reds, vmin=0., vmax=3.)

ax2 = fig.add_subplot(111)
piplot = ax2.contour(x, z, pi, 6, colors='k')

plt.axis([-16.,16, 0, 16.])
plt.xticks(np.arange(-16,16.001,4))
plt.yticks(np.arange(0,16.001,2))
plt.colorbar(pad=0.05, orientation="horizontal")
plt.xlabel("x (km)", size=15)
plt.ylabel("z (km)", size=15)
plt.title("Initial temp. & pres. perturbations (K, Pa)", size=20)
plt.grid()
plt.show()

我能够使用添加轴手动修复它。(感谢同事们!)


为了寻找相同的答案,我想我找到了一些更容易使用的东西,与当前版本的Matplotlib兼容,以减小颜色栏的宽度。可以使用matplolib.figure函数的“ratio”选项(请参阅)。下面是一个例子:

import numpy as np
from matplotlib import pyplot as plt


# generate data 

x = np.random.normal(0.5, 0.1, 1000)
y = np.random.normal(0.1, 0.5, 1000)


hist = plt.hist2d(x,y, bins=100)

plt.colorbar(aspect=20)
plt.colorbar(aspect=50)

对于希望加宽颜色栏的用户,也可以使用aspect来实现。对我来说,aspect=12看起来不错。
import numpy as np
from matplotlib import pyplot as plt


# generate data 

x = np.random.normal(0.5, 0.1, 1000)
y = np.random.normal(0.1, 0.5, 1000)


hist = plt.hist2d(x,y, bins=100)

plt.colorbar(aspect=20)
plt.colorbar(aspect=50)