如何在 Matplotlib 中制作按密度着色的散点图?
matplotlibserver side programmingprogramming更新于 2025/5/11 10:07:17
我们可以创建一个颜色和值的字典。如果出现相同的值,我们可以使用散点图方法,如果更接近的值具有相同的颜色集,则可以使图颜色更浓密。
步骤
创建一个新图形,或激活现有图形。
将 ~.axes.Axes 添加到图形作为子图排列的一部分。
使用 np.random.normal() 方法获取 x 和 y 值。从正态(高斯)分布中抽取随机样本。
制作一个包含红色和蓝色的颜色列表。
为了使其更密集,我们可以存储具有相同值的颜色。
绘制散点,即 *y* 与 *x* 的散点图,其中标记大小和/或颜色各不相同。
设置 x 视图限制。
设置 y 视图限制。
要显示图形,请使用 plt.show() 方法。
示例
import random import numpy as np import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(1, 1, 1) x = np.random.normal(0.5, 0.3, 10000) y = np.random.normal(0.5, 0.3, 10000) colors = ['red', 'blue'] color = dict() for i in x: if i not in color: color[i] = colors[random.randint(1, 10) % len(colors)] ax.scatter(x, y, c=[color.get(i) for i in x]) ax.set_xlim(-0.5, 1.5) ax.set_ylim(-0.5, 1.5) plt.show()