如何更改 python 中多边形特定边的颜色?

How to change color of particular edge for polygon in python?

有一个多边形,我想知道如何改变它特定边的颜色,如下图所示。

import matplotlib.pyplot as plt
import numpy as np


## -----------------------Initialize Geometry----------------------- 
pixels = 600
my_dpi = 100

coord = [[-150,-200],[300,-200],[300,0],[150,200],[-150,200]]


fig = plt.figure(figsize=( pixels/my_dpi,  pixels/my_dpi), dpi=my_dpi)  

plt.axes([0,0,1,1])

rectangle = plt.Rectangle((-300, -300), 600, 600, fc='k')
plt.gca().add_patch(rectangle)
polygon = plt.Polygon(coord,fc='w')
plt.gca().add_patch(polygon)
plt.axis('off')
plt.axis([-300,300,-300,300])

plt.savefig('figure1/5.jpg',dpi=my_dpi)

最简单的方法是简单地在多边形的两个相关顶点之间画一条线,即

plt.plot([coords[0,0], coords[-1,0]], [coords[0,1], coords[-1,1]], color='r', lw=5)

会给你

尽管我建议为多边形添加一个边框,其宽度与这条线的宽度相同,颜色与面色相同:

polygon = plt.Polygon(coord,fc='w',ec='w',lw=5)

作为使红线齐平的方法。您可以更改哪条边是彩色的,您只需更改 plt.plot()coords[i,j] 的索引,只要索引相邻(使用换行 - 所以最后一个索引和第一个索引相邻)绘制的线将是边而不是对角线。

另请注意,您可以使用切片或辅助函数来缩短绘图命令,但为了明确起见,我忽略了这一点。