如何在Matplotlib中将数字转换为颜色比例?
要将数字转换为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()