我在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()
答案 0 :(得分:5)
寻找相同的答案我认为我发现更容易使用与当前版本的Matplotlib兼容以减少颜色条的宽度。可以使用matplolib.figure函数的“ratio”选项(参见http://matplotlib.org/api/figure_api.html)。这是一个例子:
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)
答案 1 :(得分:3)