当前位置: 首页 > 知识库问答 >
问题:

如何在matplotlib中将数字转换为色标?

卢普松
2023-03-14

我正在做一个条形图,我希望条形图的颜色根据颜色梯度从红色变为蓝色。我有一个数据框的尺寸,它告诉我每个条在红蓝标度上应该在哪里。我目前的方法是通过在RGB红色和蓝色之间进行线性插值,手动将这些值转换为RGB颜色,但我需要一种自动将数值转换为颜色比例的方法。我还需要能够有一个色条图例来帮助解释它。

共有1个答案

石俊雄
2023-03-14

创建条形图并根据数据框中的值设置条形图的颜色非常简单。colormap和规范化实例有助于将值转换为颜色,这些颜色由matplotlib的color参数理解。斧头。条形码。然后,使用与色条相同的规格化和颜色映射,从ScalarMappable创建色条。

import matplotlib.pyplot as plt
import matplotlib.colors
import numpy as np; np.random.seed(0)
import pandas as pd

x = np.arange(12)
y = np.random.rand(len(x))*51
c = np.random.rand(len(x))*3+1.5
df = pd.DataFrame({"x":x,"y":y,"c":c})

cmap = plt.cm.rainbow
norm = matplotlib.colors.Normalize(vmin=1.5, vmax=4.5)

fig, ax = plt.subplots()
ax.bar(df.x, df.y, color=cmap(norm(df.c.values)))
ax.set_xticks(df.x)

sm = plt.cm.ScalarMappable(cmap=cmap, norm=norm)
sm.set_array([])  # only needed for matplotlib < 3.1
fig.colorbar(sm)

plt.show()

对于使用自定义的彩色地图与条形图请参阅根据彩色地图着色的巴图?

 类似资料:
  • 给定数字的字符串表示形式,如何将其转换为TypeScript中的类型?

  • 问题内容: 我想这些类型的值,转换的,,等多项。在JavaScript中,我们可以使用,但是PHP中有可用的类似方法吗? 问题答案: 通常不需要这样做,因为PHP在大多数情况下都会为您强制类型。对于那些你想显式转换型的情况下,_投_它:

  • 问题内容: 我知道Java不允许无符号类型,所以我想知道它如何将整数转换为字节。假设我有一个值为255的整数a,并且将该整数转换为一个字节。该值表示在字节11111111中吗?换句话说,该值是否更多地视为带符号的8位整数,还是仅直接复制该整数的后8位? 问题答案: 这称为缩小原始转换。根据规格: 将有符号整数缩小为整数类型 T会 简单地丢弃除 n个 最低阶位以外的所有位,其中 n 是用于表示类型

  • 问题内容: 我试图使用像这样的数字列表。 这是sql过程的一部分,变量’list_of_ids’是varchar,它包含如下所示的id:1、2、3、4、5 ........如何使用此列表和此查询 问题答案: 也尝试一下。这可能是更好的解决方案,因为它不需要创建任何其他功能。oracle regexp_substr会将逗号分隔的值拆分为不同的行,并传递给查询。

  • 问题内容: 在.NET中,您可以实现以下目标: 在Java中有没有一种方法可以不必诉诸反射? PS:我不是在寻找其他存储/加载颜色的方法。我只想知道在哪里有可能做到这一点。 问题答案: 使用反射访问类的静态成员。

  • 问题内容: 我的数据框中有一列,其值类似于‘3.456B’,实际上代表34.56亿(和百万表示法类似)。如何将此字符串形式转换为正确的数字表示形式? 这显示了数据帧: 这是一个样本值: 我尝试了这个: 但不幸的是,最后还有带“ M”的值,表示百万。它返回错误,如下所示: 如何在此列中用适当的值替换B和M?有更好的方法吗? 问题答案: 假设所有条目的末尾都有一个字母,则可以执行以下操作: 这会将除最