当我使用matplotlib中的饼段分割圆圈时,我想仅在圆圈内更改线条的属性:
plt.rcParams['patch.edgecolor'] = 'lightgrey'
plt.rcParams['patch.linewidth'] = 1
影响包括圆圈线在内的所有线条。
答案 0 :(得分:1)
像往常一样,查看matplotlib API文档是个好主意,我们发现pie
图提供了很多参数,其中一个是wedgeprops
wedgeprops:[无|关键值对的词典]
参数的Dict传递给制作馅饼的楔形物体。例如,您可以传入wedgeprops = {'linewidth':3}来设置楔形边界线的宽度等于3.有关详细信息,请查看doc/arguments of the wedge object。
Wedge的一个参数是edgecolor
,另一个是linewidth
。
总而言之,你必须致电
plt.pie([215, 130], colors=['b', 'r'],
wedgeprops = { 'linewidth' : 1 , 'edgecolor' : 'lightgrey'} )
但是,由于这也改变了我们需要的饼图的轮廓......
现在,为了围绕饼图获得一个圆圈,或者恢复饼图圆周的初始线型,我们可以在饼图上设置一个具有所需属性的新Circle
面片。
完整的解决方案看起来像这样
import matplotlib.pyplot as plt
import matplotlib.patches
fig, ax = plt.subplots(figsize=(3,3))
ax.axis('equal')
slices, labels = ax.pie([186, 130, 85], colors=['b', 'r','y'],
wedgeprops = { 'linewidth' : 1 , 'edgecolor' : 'lightgrey'} )
# get the center and radius of the pie wedges
center = slices[0].center
r = slices[0].r
# create a new circle with the desired properties
circle = matplotlib.patches.Circle(center, r, fill=False, edgecolor="k", linewidth=2)
# add the circle to the axes
ax.add_patch(circle)
plt.show()