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

时间:2014-11-21 15:36:21

标签: python matplotlib charts

一直在努力使用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)

提前致谢。

*更新*

如果我将每个圆圈单独添加到轴上,它将被正确格式化。如果我添加集合它不起作用。我有更多的形状要添加,我想去收集路线。有什么理由说明一种方法可行而另一种方法不起作用?我在某处读到你需要添加艺术家,但我尝试了这个并得到了一个错误。

2 个答案:

答案 0 :(得分:3)

这是一个相当晚的答案,但我遇到了同样的问题,以下是如何解决它:

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

p = PatchCollection(my_patches, match_original=True)

答案 1 :(得分:1)

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

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

来自Collection documentation

“如果任何edgecolors,facecolors,linewidths,antialiaseds都是None,则它们默认为matplotlib.rcParams补丁设置,顺序形式。”