Numpy matplotlib: 给柱状图不同的填充样式

Numpy matplotlib: 给柱状图不同的填充样式

在本文中,我们将介绍如何给使用matplotlib制作的柱状图中的不同柱子分别添加不同的填充样式。通常情况下,matplotlib给柱状图的默认填充样式是一致的,而某些情况下我们想要为不同的柱子设置不同的样式。

阅读更多:Numpy 教程

1. 生成随机数据

我们先使用numpy生成两个随机数组作为柱状图的数据:

import numpy as np

data1 = np.random.randint(1, 10, size=5)
data2 = np.random.randint(1, 10, size=5)

2. 绘制柱状图

接下来使用matplotlib绘制柱状图,将数据传递给bar函数,同时设置每个柱子的颜色为蓝色:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
x = np.arange(5)
bar_width = 0.35

rects1 = ax.bar(x, data1, bar_width, color='b')
rects2 = ax.bar(x + bar_width, data2, bar_width, color='b')

plt.show()

运行代码后,可以看到得到了一张基本的柱状图,其中两组柱子的填充样式是一样的。

3. 设置不同的填充样式

要设置不同填充样式,我们需要对每个柱子进行单独设置。首先,我们需要定义一些填充样式,可以使用matplotlib中的“hatch”参数。例如,我们定义两个样式,分别对应线和点:

patterns = ['-', '.']

随后,对于每个柱子,我们分别设置填充样式,可以使用”set_hatch”方法:

for i in range(5):
    rects1[i].set_hatch(patterns[i % 2])
    rects2[i].set_hatch(patterns[(i+1) % 2])

其中,我们对于第一个柱状图的第i个柱子设置填充样式为“patterns[i%2]”,这样可以实现交替设置不同的填充样式。对于第二个柱状图的第i个柱子也是类似的方式。

最终代码如下所示:

import numpy as np
import matplotlib.pyplot as plt

data1 = np.random.randint(1, 10, size=5)
data2 = np.random.randint(1, 10, size=5)
patterns = ['-', '.']

fig, ax = plt.subplots()
x = np.arange(5)
bar_width = 0.35

rects1 = ax.bar(x, data1, bar_width, color='b')
rects2 = ax.bar(x + bar_width, data2, bar_width, color='b')

for i in range(5):
    rects1[i].set_hatch(patterns[i % 2])
    rects2[i].set_hatch(patterns[(i+1) % 2])

plt.show()

运行代码后,可以看到柱状图已经应用了不同的填充样式。

总结

本文介绍了如何给matplotlib制作的柱状图中的不同柱子分别添加不同的填充样式。具体的方法是,首先生成随机数据,然后绘制柱状图。最后定义填充样式并对每个柱子分别设置不同的填充样式。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程