在使用matplotlib中的箭数绘制时,如何更改颜色范围的限制?我有以下代码:
PyPlot.ion()
xlim(1, 64)
ylim(1, 64)
flechitas = quiver(x, y, EFx, EFy, sqrt((EFx.*EFx+EFy.*EFy)),
pivot="middle", cmap="Blues")
cb=colorbar(flechitas)
这会生成一个合适的图像,但会使用自动检测到的第五个参数范围(颜色)。在manual of matplotlib中,它表示我可以使用clim
关键字,但如果我将其放在参数内或外部,在xy限制之后,我会收到一个错误,指示我必须先创建一个图像, imageshow。如果我这样做,那么我会得到一个更加模糊的错误,AssertionError()
。我的matplotlib是1.3.1。
答案 0 :(得分:0)
哦,我明白了,这是用matplotlib 1.3.1做正确的方法
figure()
xlim(1,64)
ylim(1,64)
flechitas=quiver(x,y,EFx,EFy, sqrt((EFx.*EFx+EFy.*EFy)), units="x",
pivot="middle", cmap="Blues", width=0.4);
cb=colorbar(flechitas, clim(0,120));
因此,似乎clim(min, max)
必须是colorbar(...)
的参数。
答案 1 :(得分:0)
使用matplotlib函数clim
():
plt.clim(0,120)
扩展示例:
import matplotlib.pyplot as plt
import numpy as np
X, Y = np.meshgrid(np.arange(0, 2 * np.pi, .2), np.arange(0, 2 * np.pi, .2))
U = np.cos(X)
V = np.sin(Y)
M = np.hypot(U, V)
plt.figure(figsize=(17,5))
plt.subplot(121)
Q = plt.quiver(X, Y, U, V, M)
plt.colorbar()
plt.subplot(122)
Q = plt.quiver(X, Y, U, V, M)
plt.colorbar()
plt.clim(0,1)