大家好。 我试图通过matplotlib.collections.polycollection绘制多边形。但是,即使我设置了closed = Fasle,多边形也总是关闭的。我怎么能不关闭我的多边形?示例代码如下。
import matplotlib
from matplotlib.collections import PolyCollection
import matplotlib.pyplot as plt
import numpy as np
if __name__ == '__main__':
xy = np.random.rand(12).reshape(2,3,2)
p=PolyCollection(xy,closed=False)
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.add_collection(p)
答案 0 :(得分:2)
当close = False时,它实际上没有关闭多边形。但是,当您“填充”多边形时,它会自动填充到将要关闭的边界。
考虑以下修订代码
import matplotlib
from matplotlib.collections import PolyCollection
import matplotlib.pyplot as plt
import numpy as np
if __name__ == '__main__':
xy = np.random.rand(8).reshape(1,4,2)
p=PolyCollection(xy,closed=False, edgecolors = 'red', facecolors = 'white')
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.add_collection(p)
通过将edgecolor设置为明显的红色和facecolor = white,您可以清楚地看到关闭时= False多边形未关闭。在这种情况下,闭合意味着在第一个和最后一个坐标之间绘制最终边缘。但是,如果facecolor类似于蓝色,它当然必须“关闭”多边形以填充空间,否则就没有约束面部开始和结束的地方。