python根据数值显示颜色_python – 如何在matplotlib中将数字转换为颜色标度?

创建条形图并根据数据框中的值设置条形颜色非常简单.色彩映射和规范化实例有助于将值转换为颜色,这些颜色由matplotlib.Axes.bar的颜色参数理解.然后使用与条形相同的标准化和颜色映射从

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([])

fig.colorbar(sm)

plt.show()