如何在 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()

输出


相关文章