如何在 Matplotlib 中将数字转换为颜色标度?

matplotlibpythondata visualization

要在 matplotlib 中将数字转换为颜色标度,我们可以采取以下步骤。

步骤

  • 使用 numpy 创建 x、y 和 c 数据点。
  • 将数据点转换为 Pandas 数据框。
  • 使用 subplots() 方法创建新图形或激活现有图形。
  • 获取热色图。
  • 要线性归一化数据,我们可以使用 Normalize() 类。
  • 使用 x 和 y 数据点以及线性归一化的颜色图绘制散点。
  • 为 x 数据点设置 xticks
  • 要制作颜色条,请创建一个标量可映射对象。
  • 使用 colorbar() 方法制作颜色条。
  • 要显示图形,请使用 show() 方法。

示例

from matplotlib import pyplot as plt, colors
import numpy as np
import pandas as pd
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.arange(12)
y = np.random.rand(len(x)) * 20
c = np.random.rand(len(x)) * 3 + 1.5
df = pd.DataFrame({"x": x, "y": y, "c": c})
fig, ax = plt.subplots()
cmap = plt.cm.hot
norm = colors.Normalize(vmin=2.0, vmax=5.0)
ax.scatter(df.x, df.y, color=cmap(norm(df.c.values)))
ax.set_xticks(df.x)
sm = plt.cm.ScalarMappable(cmap=cmap, norm=norm)
fig.colorbar(sm)
plt.show()

输出


相关文章