问题标签 [colorbar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
35163 浏览

python - Matplotlib 颜色条背景和标签放置

直到最近,我一直在使用 Mathematica 进行绘图。虽然这真的很痛苦,而且一切都必须手动完成,但结果非常接近我想要的。一个例子如下:

Mathematica 示例图

我真的很喜欢颜色条背景中的灰色圆角矩形。虽然必须在 Mathematica 中手动调整所有内容,但 matplotlib 更加自动化并且已经产生了不错的结果。

Mathematica 示例图

但是我还有两个问题:

  1. 我不知道如何在背景中做一个圆角矩形。我查看了 fancybbox 补丁,但没有让它像我想要的那样与颜色条一起工作。获得 Mathematica 盒子之类的东西的最佳方法是什么?对于情节中的图例,似乎有一个花哨的 bbox 选项......但不适用于彩条
  2. 当我使用“较小的符号”(<)时,颜色条的标签向右移动太远。我该如何调整它(甚至可能像 Mathematica 图中的“中间”数字)?

我期待着任何指向正确方向的建议:)。

0 投票
1 回答
1298 浏览

python - 对齐离散颜色栏中的颜色字段和标签

我正在尝试创建一个具有离散等高线水平的填充等高线图,我需要控制它以比较来自不同数据源的值。我认为这应该很容易实现fig.colorbar(c, ax=ax, ticks=my_levels)。但是,正如您从下面的示例中看到的那样,颜色和值的对齐出现了问题,我无法弄清楚我的代码有什么问题。

颜色栏中未对齐颜色的示例

这是代码:

0 投票
4 回答
22948 浏览

matplotlib - matplotlib 标准颜色图使用

我正在使用 matplotlib 1.3.0,我有以下内容:

产生:

在此处输入图像描述

我不明白的是所有其他颜色都去哪儿了?据我了解,通过指定vmin=0,颜色条应使用此图像中vmax=3的全部范围:cmap

在此处输入图像描述

它是在没有给出vmin,vmaxlevels参数的情况下产生的。那么......我在这里错过了什么?

编辑 1

作为对 tom10 和 tcaswell 的回应。我原以为会像你说的那样,但是……不幸的是,事实并非如此。看看这个:

和:

在此处输入图像描述

也许要澄清一下:假设我有数据,它的重要特征在 0.1 左右,但有一些在 3 左右。所以我给它一个levels=[0, 0.005, 0.075, 0.1, 0.125, 0.15, 0.2, 1, 2.5, 2.75, 3, 3.25]and vmin=0, vmax=3.25。现在我希望看到全范围的颜色,但所有重要的数据点 0.005 到 0.125 最终都在蓝色区域(通过使用标准plt.cm.jet颜色图)。我想说的是……如果我给出levels=[0, 1, 2, 3], vmin=0, vmax=3一些从 0 到 3 的数据,我希望看到给定颜色图中的所有颜色,但如果我给出levels=[0, 0.9, 0.1, 0.11, 1, 3], vmi=0, vmax=3相同的结果,我希望看到所有给定颜色图中的颜色,除了映射到正确的间隔,相反,我看到一堆蓝色为 0-0.11 区域着色,一些绿色/黄色为该区域的其他部分着色。希望这使它...有点清楚。

编辑 2

即使我不给任何norm或,也会发生同样的情况vmin, vmax

编辑 3

参考 tcaswell 的评论,行为方式......至少对我来说是违反直觉的。我希望颜色在某种程度上独立于数据点。我希望始终使用颜色图中的全部颜色(除非vmin, vmax大于/小于levels最小值、最大值)。换句话说,看看我不久前做过的这段代码(Python 3):

然后将其用作:

它给出了您可以实际区分特征(0.1-0.5)的图,即通过使用上述方法,它们不再位于蓝色区域plt.cm.jet

在此处输入图像描述

我的意思是,我知道我解决了这个问题,而且不久前也解决了......但我想我的问题是......为什么 matplotlib 中的默认值不是这个?我本来希望它是这种方式......或者它可能只是一个配置/参数/默认情况下启用它的东西,我错过了?

0 投票
1 回答
2137 浏览

matplotlib - 如何缩小子图颜色条

从这段代码开始:

我想保持两个图共享相同的 x 轴,但我也想缩小颜色条。如果我使用注释行,它将不起作用。有什么更好、最优雅的方法来做到这一点?我想我应该make_axes_locatable在某个时候使用,但我不知道如何在不改变 imshow x 轴长度的情况下以正确的方式使用它。

谢谢你。

0 投票
2 回答
22244 浏览

python - 如何在不同的子图中绘制 pcolor 颜色条 - matplotlib

我正在尝试将我的情节拆分为不同的子情节。我想要实现的是在不同的子情节中放置一个子情节的颜色条。现在我正在使用:

但结果如下(注意颜色条左侧不需要的空图): 错误的图表

我该怎么做才能只打印没有左图的颜色条?

谢谢

0 投票
1 回答
509 浏览

python - 如何在 Matplotlib 中的可自定义位置设置颜色条上的枢轴?

我在使用 Matplotlib colorbar 时遇到了一些麻烦,也许我不理解文档(我不是以英语为母语的人)或其核心概念。

假设我有一个数据矩阵(形状,N*2)。我想制作这个数据的散点图,并添加一个基于标签列(N * 1)的配色方案,在浮点数中。我知道如何使用 colorbar 和 scalarmappable。

但是,我对此标签列中的一些枢轴值感兴趣,我希望将这些值呈现在颜色条的某个有趣位置。例如,标签值为 0,我想将它定位在 1/3 位置或中间——在我选择的颜色栏中,它可以是白色或灰色。

但是如果我理解正确的话,colorbar 只会从 [min, max] 中的原始数据中获取映射到 [0, 1] 中的数据数组。在这种情况下,我感兴趣的枢轴值最终会随机出现,除非我非常仔细地定义我的标准化函数。

所以要将我喜欢的白色作为我的枢轴值放在颜色条的中间,我必须定义标准化函数,它不仅可以标准化我的数据,而且还要使枢轴值位于 0.5 的位置。

对于我有限的 Matplotlib 经验,这是我知道的解决方案。

理想情况下,假设我有一列浮点数据,我可以选择一些枢轴值,并给它们一些特殊的位置。然后我将它们标准化并提供给颜色图。但是,颜色条可以为我之前定义的那些特殊位置设置特殊颜色。并获得一个带有正确刻度定位器和刻度标签的相应颜色条,指示我的特殊枢轴值。

我正在寻找一种更简单的方法(来自标准库),我可以使用它来实现这一点。

0 投票
1 回答
3104 浏览

r - R如何控制彩条/图例的间距

我想绘制一张叶绿素浓度图,但这些值的分散方式使得图例变得不可读(见图)

chl_a

所以我试图控制颜色条/图例中颜色的间距。我想让它均匀分布(同时保持地图本身的不均匀中断)。

下面的示例非常简化,适用于光栅图,但 image.plot 也是如此。

我考虑将数据转换为日志值,但这并没有给我一个令人满意的结果。因此,非常感谢您对传说的任何帮助。

0 投票
2 回答
6804 浏览

r - 如何使 ggplot2 中的图例与我的情节高度相同?

我使用ggplot2(版本 0.9.3.1)在 R(版本 R 版本 3.0.1 (2013-05-16))中生成了一个简单的图,显示了一组数据的相关系数。目前,绘图右侧的图例颜色条是整个绘图大小的一小部分。

我希望图例颜色条与图的高度相同。我以为我可以使用legend.key.height来做到这一点,但我发现事实并非如此。我调查了gridunit函数,发现里面有一些标准化的单位,但是当我尝试它们时(unit(1, "npc")),颜色条太高了,离开了页面。

如何使图例与情节本身的高度相同?

一个完整的独立示例如下:

在此处输入图像描述

0 投票
1 回答
1653 浏览

matplotlib - Matplotlib 绘图在添加颜色条时变为非正方形

这是一个相当具体的要求,但我想知道是否有人对这个特定问题有解决方案。当绘图包含颜色条时,似乎 Matplotlib 试图将颜色条和绘图本身压缩到方形边界框中。有没有办法让绘图本身完全符合您想要的尺寸(理想情况下长宽比为 1),同时仍然有一个颜色条?有没有一种聪明的方法可以让你不必猜测和检查?

狭窄

代码如下:

谢谢!

0 投票
1 回答
1283 浏览

matlab - 自定义颜色条MATLAB中的颜色

我搜索了很多,但找不到答案。我是 matlab 新手。

我想根据值 [0 1 2 3 4 5 10 15] 在颜色栏中显示特定颜色,换句话说,我想为这些值保留颜色......例如黄色介于 0 和 1 之间,橙色介于1 和 2,2 和 3 之间的红色等等...我使用了下面的代码,但这不是正确的答案..主要数据可以在 0 和 2、0 和 10 或 0 和 15 之间。我想在我的所有数字中为 0 和 1 之间的值精确地使用特定的颜色......我使用了 contourf 函数。这是我的代码:

这是我必须在contourf中使用的一些真实数据

请帮助我,谢谢。