我在matplotlib pyplot中写了一个代码
import matplotlib.pyplot as plt plt.quiver(x,y,u,v, colour)
这里的颜色是一个浮点数列表。我的问题是我怎么知道哪个数字代表蓝色/绿色等。我试了500好像是紫色的,它需要绿色/蓝色/黄色,。。等我试过随机数,但没有用
k4aesqcs1#
您可以执行help(plt.quiver)以快速阅读其文档。当你调用plt.quiver(x,y,u,v, colour)时,matplotlib使用一个颜色Map表来为colour的每个值分配一个颜色。您可以使用cmap选项更改色彩Map表。在下面的例子中,我将把向量场的大小Map到一个颜色Map表:
help(plt.quiver)
plt.quiver(x,y,u,v, colour)
colour
cmap
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关键字参数:
color
fig, ax = plt.subplots() q = ax.quiver(x, y, u, v, color="red") ax.set_aspect("equal")
您也可以为每个箭袋指定特定的颜色。在这种情况下,color必须是具有与u相同数量的元素的序列。在这里,我将分配从指定序列中采样的随机颜色:
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")
1条答案
按热度按时间k4aesqcs1#
您可以执行
help(plt.quiver)
以快速阅读其文档。当你调用
plt.quiver(x,y,u,v, colour)
时,matplotlib使用一个颜色Map表来为colour
的每个值分配一个颜色。您可以使用cmap
选项更改色彩Map表。在下面的例子中,我将把向量场的大小Map到一个颜色Map表:您也可以为所有 Flutter 器指定一种颜色。在这种情况下,您必须设置
color
关键字参数:您也可以为每个箭袋指定特定的颜色。在这种情况下,
color
必须是具有与u
相同数量的元素的序列。在这里,我将分配从指定序列中采样的随机颜色: