如何在Python matplotlib直方图中为不同的柱子指定不同的颜色?
要在matplotlib直方图中为不同的柱子指定不同的颜色,我们可以采取以下步骤。
步骤
-
设置图像的大小并调整子图之间和周围的填充。
-
创建一个图像和子图集。
-
绘制100个样本数据的随机直方图。
-
迭代bins的数量范围并为每个柱子设置随机面颜色。
-
要显示图像,使用 show() 方法。
示例
import numpy as np
import matplotlib.pyplot as plt
import random
import string
# 设置图像的大小
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
# 创建一个图像和子图集
fig, ax = plt.subplots()
# 随机数据
data = np.random.rand(100)
# 绘制100个样本数据的随机直方图
N, bins, patches = ax.hist(data, edgecolor='black', linewidth=1)
# 为每个柱子设置随机面颜色
for i in range(len(N)):
patches[i].set_facecolor("#" + ''.join(random.choices("ABCDEF" + string.digits, k=6)))
# 显示图像
plt.show()
输出
它将产生以下输出 –