使用matplotlib中的箭头更改颜色限制?

时间:2015-07-07 22:31:58

标签: python matplotlib visualization

在使用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。

2 个答案:

答案 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)

enter image description here