带有多个图例条目的 Matplotlib 直方图

matplotlibpythondata visualization

要绘制带有多个图例条目的直方图,我们可以采取以下步骤 −

  • 设置图形大小并调整子图之间和周围的填充。
  • 使用 numpy 创建随机数据
  • 使用 hist() 方法绘制直方图。
  • 制作一个颜色列表来为每个补丁的表面着色。
  • 迭代补丁并设置每个补丁的表面颜色。
  • 创建一个句柄列表来放置图例。
  • 对多个图例条目使用 legend() 方法。
  • 要显示图形,请使用 show() 方法。

示例

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Rectangle

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

data = np.random.rayleigh(size=1000) * 35
N, bins, patches = plt.hist(data, 30, ec="k")
colors = ["red", "yellow", "green"]

for i in range(0, len(bins)-1):
patches[i].set_facecolor(colors[i % len(colors)])

handles = [Rectangle((0, 0), 1, 1, color=c, ec="k") for c in colors]
labels = ["Red", "Yellow", "Green"]
plt.legend(handles, labels)

plt.show()

输出


相关文章