matplotlib 我怎样才能知道图中颜色的个数

uurv41yg  于 2023-06-06  发布在  其他
关注(0)|答案(1)|浏览(113)

我在matplotlib pyplot中写了一个代码

import matplotlib.pyplot as plt
plt.quiver(x,y,u,v, colour)

这里的颜色是一个浮点数列表。我的问题是我怎么知道哪个数字代表蓝色/绿色等。
我试了500好像是紫色的,它需要绿色/蓝色/黄色,。。等
我试过随机数,但没有用

k4aesqcs

k4aesqcs1#

您可以执行help(plt.quiver)以快速阅读其文档。
当你调用plt.quiver(x,y,u,v, colour)时,matplotlib使用一个颜色Map表来为colour的每个值分配一个颜色。您可以使用cmap选项更改色彩Map表。在下面的例子中,我将把向量场的大小Map到一个颜色Map表:

import numpy as np
import matplotlib.pyplot as plt
x, y = np.mgrid[-2:2:20j, -2:2:20j]
u = -np.sin(y)
v = np.cos(x)
mag = np.sqrt(u**2 + y**2)
fig, ax = plt.subplots()
q = ax.quiver(x, y, u, v, mag, cmap="plasma")
ax.set_aspect("equal")
fig.colorbar(q, label="magnitude")

您也可以为所有 Flutter 器指定一种颜色。在这种情况下,您必须设置color关键字参数:

fig, ax = plt.subplots()
q = ax.quiver(x, y, u, v, color="red")
ax.set_aspect("equal")

您也可以为每个箭袋指定特定的颜色。在这种情况下,color必须是具有与u相同数量的元素的序列。在这里,我将分配从指定序列中采样的随机颜色:

color_set = ["r", "g", "b", "c", "k", "m"]
colors = [random.choice(color_set) for i in range(u.size)]
fig, ax = plt.subplots()
q = ax.quiver(x, y, u, v, color=colors)
ax.set_aspect("equal")

相关问题