如何在 Matplotlib 中制作根据密度着色的散点图?


我们可以为颜色和值创建一个词典。如果出现相同的值,我们可以使用散点图方法,如果相近的值具有相同颜色集,这将使绘图颜色更浓密。

步骤

  • 创建一个新图形或激活现有图形。

  • 将 ~.axes.Axes 作为子图布置的一部分添加到图形中。

  • 使用 np.random.normal() 方法获取 x 和 y 值。从正态(高斯)分布中绘制随机样本。

  • 制作带有红色和蓝色颜色的色列表。

  • 为了使其更浓密,我们可以对具有相同值的颜色进行存储。

  • 绘制散点图、*y* vs. *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()

输出

更新时间:2021-03-16

2K+ 次浏览

开启您的 职业生涯

完成课程获取认证

立即开始
广告
© . All rights reserved.