gpt4 book ai didi

python - 在 matplotlib 中创建正方形网格(补丁)

转载 作者:太空宇宙 更新时间:2023-11-03 15:08:47 28 4
gpt4 key购买 nike

我正在尝试生成一个正方形网格,每个网格之间有一个小的偏移量,并认为我会使用我卓越的 matplotlib 技能。不幸的是,输出仅显示一个正方形,因此我怀疑 matplotlib 没有收到绘制我正在初始化的所有补丁对象的消息,但尽管对 stackoverflow 进行了大量搜索,我仍无法解决此问题。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as patches
import matplotlib.collections as coll

wid = 1
hei = 1
nrows = 5
ncols = 7
inbetween = 0.1

xx = np.arange(0, ncols, (wid+inbetween))
yy = np.arange(0, nrows, (hei+inbetween))

fig = plt.figure()
ax = plt.subplot(111, aspect='equal')

pat = []
for xi in xx:
for yi in yy:
sq = patches.Rectangle((xi, yi), wid, hei, fill=True)
ax.add_patch(sq)

pc = coll.PatchCollection(pat)
ax.add_collection(pc)

plt.axis('off')
plt.show()
plt.savefig('test.png', dpi=90)

对于出了什么问题有什么想法吗?

最佳答案

这里有两个问题。首先,您在这里只能看到一个补丁(部分),因为轴从 0 到 1,而不是达到 ncols 和 nrows。

这可以通过重新限制轴来抵消

ax.relim()
ax.autoscale_view()

或者通过手动设置限制,例如ax.axis([0,ncols+1,0,nrows+1]).

其次,PatchCollection 没有执行任何操作,因为向其中添加了一个空列表 (pat=[])。要么删除这两行

pc = coll.PatchCollection(pat)
ax.add_collection(pc)

或将ax.add_patch(sq)替换为pat.append(sq)。请注意,使用 PatchCollection 时,relim() 不起作用,并且需要手动重新限制轴。 enter image description here

关于python - 在 matplotlib 中创建正方形网格(补丁),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44417945/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com