【问题标题】:Draw a grid of cells using Matplotlib使用 Matplotlib 绘制单元格网格
【发布时间】:2022-12-31 03:11:12
【问题描述】:

我正在尝试使用 Matplotlib 绘制单元格网格,其中单元格的每个边框(顶部、右侧、底部、左侧)可以具有不同的宽度(1 到 5 之间的随机数)。我还应该注意,单元格内部区域(白色部分)的宽度和高度可以在 15 到 20 之间变化。

我想知道如何获取每个单元格的坐标以避免单元格之间有任何额外的空间。

我尝试了几个想法,但是我没有得到正确的坐标。

【问题讨论】:

  • 你尝试过自己做什么?

标签: python matplotlib


【解决方案1】:

您可以在水平和垂直方向绘制具有随机厚度的薄矩形来模拟单元格的边缘:

import matplotlib.pyplot as plt
import random

fig, ax = plt.subplots()
color = 'darkgreen'
size = 20
m, n = 4, 3
for i in range(m + 1):
    for j in range(n + 1):
        if j < n:  # thick vertical line
            w1 = random.randint(0, 5)
            w2 = random.randint(w1 + 1, 6)
            ax.add_patch(plt.Rectangle((i * size - w1, j * size), w2, size, color=color, lw=0))
        if i < m:  # thick horizontal line
            h1 = random.randint(0, 5)
            h2 = random.randint(h1 + 1, 6)
            ax.add_patch(plt.Rectangle((i * size, j * size - h1), size, h2, color=color, lw=0))
ax.autoscale()  # fit all rectangles into the view
ax.axis('off')  # hide the surrounding axes
plt.tight_layout()
plt.show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2019-02-05
    相关资源
    最近更新 更多