是否有';空的';matplotlib中的补丁?

是否有';空的';matplotlib中的补丁?,matplotlib,Matplotlib,我根据1和0的列表添加修补程序(例如[1,0,1,1,0,0,1,0,1,1,0])。我想在有使用matplotlib的补丁的地方添加补丁,并将零保留为空。但是,尝试以下代码会引发列表索引超出范围错误: fig = plt.figure() ax = plt.axes() self.patches = [] for i, val in enumerate(my_list): if val == 1: self.patches.append(plt.Rectangle((i

我根据1和0的列表添加修补程序(例如
[1,0,1,1,0,0,1,0,1,1,0]
)。我想在有使用matplotlib的补丁的地方添加补丁,并将零保留为空。但是,尝试以下代码会引发列表索引超出范围错误:

fig = plt.figure()
ax = plt.axes()
self.patches = []
for i, val in enumerate(my_list):
    if val == 1:
        self.patches.append(plt.Rectangle((i, 0), 0.9, 1, angle=0.0,
                                          facecolor='r', edgecolor='w',
                                          linewidth='2.0',
                                          animated=False))
    ax.add_patch(self.patches[i])

我唯一能想到的就是在上面的代码中使用
else
语句添加一个与零背景颜色相同的矩形。是否存在可以替代使用的空面片对象?我希望修补程序与列表中的修补程序处于相同的位置。

使用
color='none'
将所有颜色(
facecolor
edgecolor
设置为不可见)

或者,您可以将
visible=False
传递给构造函数以隐藏修补程序

您的循环可以是:

my_list=[1,0,1,1,0,0,1,0,1,0]
补丁=[]
图,ax=plt.子批次()
对于i,枚举中的val(我的_列表):
p=plt.矩形((i,0),0.9,1,角度=0.0,
facecolor='r',edgecolor='w',
线宽='2.0',
动画=假,可见=布尔(val))
补丁。追加(p)
ax.添加补丁(p)

使用
color='none'
设置所有颜色(
facecolor
edgecolor
不可见)

或者,您可以将
visible=False
传递给构造函数以隐藏修补程序

您的循环可以是:

my_list=[1,0,1,1,0,0,1,0,1,0]
补丁=[]
图,ax=plt.子批次()
对于i,枚举中的val(我的_列表):
p=plt.矩形((i,0),0.9,1,角度=0.0,
facecolor='r',edgecolor='w',
线宽='2.0',
动画=假,可见=布尔(val))
补丁。追加(p)
ax.添加补丁(p)

当然,您可以将一个空补丁传递给Matplotlib,但我不会,除非出于某种原因,您希望Matplotlib知道丢失的数据:

fig=plt.figure()
ax=plt.axs()
self.patches=[]
对于i,枚举中的val(我的_列表):
如果val==1:
self.patches.append(plt.Rectangle((i,0),0.9,1,angle=0.0,
facecolor='r',edgecolor='w',
线宽='2.0',
动画=假)
ax.add_补丁(self.patches[i])
其他:
self.patches.append(无)

当然,您可以将一个空补丁传递给Matplotlib,但我不会,除非出于某种原因,您希望Matplotlib知道丢失的数据:

fig=plt.figure()
ax=plt.axs()
self.patches=[]
对于i,枚举中的val(我的_列表):
如果val==1:
self.patches.append(plt.Rectangle((i,0),0.9,1,angle=0.0,
facecolor='r',edgecolor='w',
线宽='2.0',
动画=假)
ax.add_补丁(self.patches[i])
其他:
self.patches.append(无)

例如,如果我正在使用FuncAnimation设置这些面片的动画,并使用这些面片的新位置更新列表,matplotlib是否需要知道缺少的数据(即零)。这是否是一个不附加任何内容的好理由?当然这是一个原因。OTOH,您还需要切换可见性。例如,如果我使用FuncAnimation为这些面片设置动画,使用新位置更新列表,matplotlib是否需要知道缺少的数据(即零)。这是否是一个不附加任何内容的好理由?当然这是一个原因。OTOH,您还需要切换可见性。矩形选项中的可见性是否应为
visible=bool(val)
?我想如果你使用索引值,除了第一个索引外,它会为所有索引提供true,但我们希望列表中的1/0为true/false。是的,当然,很抱歉,我没有给予足够的关注。更新答案。在矩形选项中是否应为
visible=bool(val)
?我想如果你使用索引值,除了第一个索引外,它会为所有索引提供true,但我们希望列表中的1/0为true/false。是的,当然,很抱歉,我没有给予足够的关注。更新答案。