首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用matplotlib表示y轴上色差的色差

用matplotlib表示y轴上色差的色差
EN

Stack Overflow用户
提问于 2016-06-15 12:01:14
回答 1查看 1.1K关注 0票数 1

我有以下的色调/饱和度二维直方图。有两件事我喜欢改变,但不知道如何改变。

1)是否可以用显示色差的色条替换y轴值(0-20)?下面的代码构建了渐变的数字数组。

代码语言:javascript
复制
hue_gradient = np.linspace(0, 1)
hsv = np.ones(shape=(1, len(hue_gradient), 3), dtype=float)
hsv[:, :, 0] = hue_gradient
all_hues = hsv_to_rgb(hsv)

因此,问题是如何将这个数组设置为一个彩色条,并将其定位到图像的左侧。

2) --我想把彩色条缩放到图像的右边,这样它就不会在顶部和底部超过它?

我希望有人能帮我。

编辑:澄清我想看到的y轴(Hue),而不是0到20的值。我有以下的梯度。我用上面的代码生成它。我希望这个渐变可视化成一个色条,而不是颜色轴的0到20。基本上:我如何设置all_hues (在下面发布的梯度)作为色条的数据,并显示它,并将颜色条移动到色调轴滴答的位置。

当前代码:

代码语言:javascript
复制
fig_synth = plt.figure("synth")
plt.imshow(synth_avrgHistogram, interpolation='nearest', vmin=0, vmax=vmax)
plt.colorbar()
plt.xlabel("Saturation")
plt.ylabel("Hue")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-15 14:21:58

好吧,我不知道该怎么做。我能想到的最接近的事情是使用这些matplotlib示例中的AxesGridcmap边缘cbar

代码语言:javascript
复制
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import AxesGrid
import numpy as np

def demo_right_cbar(fig):
    """
    A grid of 2x1 images. Left will be the colorbar, right the image.
    """
    grid = AxesGrid(fig, 121,  # similar to subplot(122)
                    nrows_ncols=(1,2),
                    axes_pad=0.05,
                    cbar_location="right",
                    cbar_mode="edge",
                    cbar_size="7%",
                    cbar_pad="2%",
                    )
    extent = (0,200,0,200)
    Z = np.random.randint(0,200,(extent[1],extent[3]))
    gradient = np.linspace(0, 20, 100)
    gradient = np.vstack((gradient, gradient)).T
    grid[0].imshow(gradient, aspect=100./7., extent=extent)
    grid[1].set_ylabel("Hue")
    grid[0].set_xticks([])
    grid[0].set_ylabel("Hue")

    im = grid[1].imshow(Z, extent=extent, interpolation="nearest", cmap=plt.get_cmap("summer"))
    grid[1].set_xlabel("Saturation")
    print(dir(grid[0]))
    cax = grid.cbar_axes[0]
    cax.colorbar(im)
    cax.toggle_label(True)
    cax.axis[cax.orientation].set_label('Foo')

fig = plt.figure()
demo_right_cbar(fig)

plt.show()

这是我所能做的..。你必须想办法在左边的“彩色条”中画出你想要的颜色。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37834881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档