如何更改 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]
的索引,只要索引相邻(使用换行 - 所以最后一个索引和第一个索引相邻)绘制的线将是边而不是对角线。
另请注意,您可以使用切片或辅助函数来缩短绘图命令,但为了明确起见,我忽略了这一点。
有一个多边形,我想知道如何改变它特定边的颜色,如下图所示。
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]
的索引,只要索引相邻(使用换行 - 所以最后一个索引和第一个索引相邻)绘制的线将是边而不是对角线。
另请注意,您可以使用切片或辅助函数来缩短绘图命令,但为了明确起见,我忽略了这一点。