Matplotlib 补丁与提供的参数不匹配



一直在努力使用Python和Matplotlib模块。我正在尝试画一些没有用黑色填充和勾勒的圆圈。我在艺术家圈子里提出了正确的论点,但它似乎忽略了它并把蓝色放在了蓝色。有什么想法吗?此外,该数字会自动显示,而无需我说明绘制或显示。我如何阻止它并控制图表何时弹出?提前谢谢。

我的代码

    def draw_lattice(self,chart):
    patches = []
    for x in range(1,4):
        for y in range (1,4):
            circle = Circle((x,y), .25,color='k',fill=False)
     #       chart.add_patch(circle)
            patches.append(circle)

    p = PatchCollection(patches)
    chart.add_collection(p)

提前谢谢。

*更新*

如果我将每个圆单独添加到轴上,它将正确格式化。如果我添加集合,它不起作用。我还有很多形状要添加,我想走收集路线。为什么一种方式会奏效而另一种方式不起作用?我在某处读到您需要添加艺术家,但我尝试过并得到一个错误。

这是一个相当晚的答案,但我刚刚遇到了同样的问题,这是解决它的方法:

您需要做的是告诉PatchCollection匹配原始补丁。为此,只需添加 match_original=True ,如下所示:

p = PatchCollection(my_patches, match_original=True)

您可以在创建修补程序集合时设置圆圈的颜色:

p = PatchCollection(patches,facecolors='w',edgecolor='k')

从集合文档中:

"如果边缘颜色、面色、线宽、抗锯齿中的任何一个是 None,它们默认为 matplotlib.rcParams 补丁设置,以顺序形式。

相关内容

最新更新