欢迎访问宙启技术站
智能推送

使用Python中的Box()函数创建带有标签的矩形图形

发布时间:2023-12-14 02:53:06

在Python中,Box()函数可以通过使用matplotlib库创建带有标签的矩形图形。这个函数可以用来可视化数据,展示不同类别或组的相关信息。

下面是一个使用Box()函数创建带有标签的矩形图形的示例:

首先,我们需要导入所需的库:

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

然后,我们可以定义一些示例数据,以展示如何使用Box()函数:

data = {
    'Group A': [10, 15, 20, 25],
    'Group B': [5, 12, 18, 22],
    'Group C': [8, 12, 16, 24]
}

接下来,我们可以创建一个Box()函数来绘制矩形图形:

def Box(position, height, width, color, label):
    rectangle = Rectangle(position, width, height, color=color)
    ax.add_patch(rectangle)
    ax.text(position[0] + width / 2, position[1] + height / 2, label, ha='center', va='center', color='white')

然后,我们可以创建一个图形对象和一个子图对象:

fig, ax = plt.subplots()
ax.set_xlim(0, 30)  # 设置x轴范围
ax.set_ylim(0, 4)   # 设置y轴范围
ax.set_aspect('equal')  # 设置坐标轴比例相等

接下来,我们可以在图形中绘制矩形图形:

for i, (key, values) in enumerate(data.items()):
    height = 0.8  # 矩形高度
    width = sum(values) / 10  # 矩形宽度
    position = (0.1, i + 0.1)  # 矩形左下角位置
    color = plt.cm.tab10(i % 10)  # 颜色
    Box(position, height, width, color, key)

最后,我们可以进行最终的图形展示:

plt.show()

完整的代码如下:

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

data = {
    'Group A': [10, 15, 20, 25],
    'Group B': [5, 12, 18, 22],
    'Group C': [8, 12, 16, 24]
}

def Box(position, height, width, color, label):
    rectangle = Rectangle(position, width, height, color=color)
    ax.add_patch(rectangle)
    ax.text(position[0] + width / 2, position[1] + height / 2, label, ha='center', va='center', color='white')

fig, ax = plt.subplots()
ax.set_xlim(0, 30)
ax.set_ylim(0, 4)
ax.set_aspect('equal')

for i, (key, values) in enumerate(data.items()):
    height = 0.8
    width = sum(values) / 10
    position = (0.1, i + 0.1)
    color = plt.cm.tab10(i % 10)
    Box(position, height, width, color, key)

plt.show()

运行上述代码,将会生成一个带有三个标签的矩形图形,每个标签对应一个不同的组(Group A、Group B、Group C)。矩形的宽度代表每个组的数据总和,矩形的颜色由plt.cm.tab10()函数确定。