无法使用字符串在箭图matplotlib中设置颜色

pftdvrlh  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(134)

我尝试用shaft(matplotlib)绘图。我的箭头表示相关性,所以我想根据p值改变它的颜色。当我用字符串(“w”或“k”)创建一个np.ndarray来表示每个箭头的颜色时,我得到以下错误:
输入类型不支持ufunc“isfinite”,并且根据强制转换规则“safe”,无法将输入安全地强制为任何支持的类型
我认为问题出在dtype中,因为如果我只是使用字符串(例如“w”)设置颜色,它也会抛出同样的错误。
我看到一些使用字符串设置颜色的示例,但它们对我不起作用。

0pizxfdo

0pizxfdo1#

别担心,让Matplotlib做他们的事情,它知道如何根据另一个参数给箭图中的箭头着色。

import numpy as np
import matplotlib.pyplot as plt

N=50
# the positions, random points in 0,1; 0,1.
x = np.random.rand(N)
y = np.random.rand(N)

# random directions, 0.025 = 0.5/20
u = np.random.rand(N)/20-0.025
v = np.random.rand(N)/20-0.025

# p values, normalized
p = np.random.rand(N)+np.random.rand(N)1
p = p/sum(p)

# quiver takes a 5th argument, a vector of values that are
# mapped to colors, it is possible to show the mapping using
# plt.colorbar
plt.quiver(x, y, u, v, p)
plt.colorbar()

plt.show()

如果您不喜欢默认的色彩Map表viridisMatplotlib has a few dozen other colormaps,例如,要使用Spectral色彩Map表,只需更改为

plt.quiver(x, y, u, v, p, cmap='Spectral')

相关问题