当前位置: 首页 > 面试题库 >

matplotlib中的2d HSV颜色空间

鲍永春
2023-03-14
问题内容

我正在尝试在matplotlib中重现此图(摘自Wikipedia)

在此处输入图片说明

基本上是2d hsv颜色空间,其中饱和度设置为1.0。这是我到目前为止所做的

from pylab import *
from numpy import outer

x = outer(arange(0, 1, 0.01), ones(100))

imshow(transpose(x), cmap=cm.hsv)
show()

这将绘制色调通道,但我不知道如何添加第二个通道。


问题答案:

您需要创建HSV数组并将其转换为RGB,这是一个示例

import numpy as np
import pylab as pl
from matplotlib.colors import hsv_to_rgb

V, H = np.mgrid[0:1:100j, 0:1:300j]
S = np.ones_like(V)
HSV = np.dstack((H,S,V))
RGB = hsv_to_rgb(HSV)
pl.imshow(RGB, origin="lower", extent=[0, 360, 0, 1], aspect=150)
pl.xlabel("H")
pl.ylabel("V")
pl.title("$S_{HSV}=1$")
pl.show()

输出为:

在此处输入图片说明



 类似资料:
  • 问题内容: 我想知道如何简单地反转给定颜色图的颜色顺序,以便将其与plot_surface一起使用。 问题答案: 标准色图也都具有相反的版本。它们具有相同的名称,并附加在末尾。(此处的文档。)

  • 问题内容: 我想设置色彩图的中间点,即我的数据从-5到10,我希望零成为中间点。我认为实现此目的的方法是归一化规范化并使用规范,但是我没有找到任何示例,我也不清楚我到底要实现什么。 问题答案: 请注意,在matplotlib 3.1版中,添加了DivergingNorm类。我认为它涵盖了您的用例。可以这样使用: 在matplotlib 3.2中,该类已重命名为TwoSlopesNorm

  • 问题内容: 这应该很容易,但是我很难过。基本上,我在matplotlib中有一个子图,每次调用一个函数时,我都会绘制一个六边形图,但是每次调用该函数时,都会得到一个新的颜色条,所以我真正想做的就是更新颜色条。不幸的是,这似乎不起作用,因为通过subplot.hexbin重新创建了附加了颜色条的对象。 我现在在这个烦人的地方,尝试完全删除颜色条轴,然后重新创建它。不幸的是,当我删除颜色条轴时,子图轴

  • 问题内容: 当混合蓝色和黄色油漆时,结果是某种绿色。 我有两种rgb颜色: 蓝色=(0,0,255) 黄色=(255,255,0) 找到两种颜色混合使用时产生的rgb颜色的算法是什么(就像使用油漆时会出现的一样)?该算法产生的颜色不必十分精确。对于上面的示例,它只需要看起来像某种绿色即可。 提前致谢。 编辑: 根据LaC的回答,用Go编写的此功能对我有用。 编辑#2 虽然如此,但设法将青色和黄色混

  • 总体上对matplotlib真的很困惑。我通常只使用导入matplotlib.pyplot作为plt。 然后做plt.figure(),plt.scatter(),plt.xlabel(),plt.show()等等。但是我在谷歌上搜索如何做一些事情,比如用颜色映射图例,我得到了所有这些包括ax的例子。但是有plt.legend(),matplotlib留档中的例子只是显示plt.legend(句柄

  • 问题内容: 有没有办法在matplotlib中更改图的颜色? 默认颜色是这种“棕色”颜色,虽然还不错,但我想对前3个小提琴进行不同的着色,以突出显示它们。我在文档中找不到任何参数。有什么想法或技巧可以使小提琴颜色不同吗? 问题答案: 说它返回: 字典,将小提琴的每个组成部分映射到创建的相应集合实例的列表。该词典具有以下键: :包含每个小提琴填充区域的实例列表。 […以及其他…] 方法小号包括: 设

  • 问题内容: 我想将matplotlib的标准颜色旋转更改为另一个颜色图。具体来说,我想使用“ gdist_rainbow”。那有可能吗,如果可以的话,我该如何实现呢? 我已经有自定义设置,例如 所以我想我只是在寻找要添加的正确键。 问题答案: 您需要为rcParameter提供一个颜色循环。一个颜色循环由颜色列表组成。可以根据颜色图进行选择。请参见下面的示例:

  • 问题内容: 我有以下代码: 因此,这将使用指定的颜色图在X轴和Y轴上生成值的图形。和轴是完美的,但是颜色图在的最小值和最大值之间分布。我想强制颜色图的范围在0到1之间。 我想到使用: 设置轴的范围,但这仅接受X和Y的最小值和最大值的参数,而不是颜色图。 编辑: 为了清楚起见,假设我有一个图的值的范围为(0 … 0.3),而另一个图的值的范围为(0.2 … 0.8)。 在两个图中,我都希望颜色条的范