Python For循环中的Matplotlib图例

Python For循环中的Matplotlib图例,python,matplotlib,legend,Python,Matplotlib,Legend,我对数据进行了装箱,并将其绘制在地图上,每个箱子都有一个图例,但每次通过循环时,我都会在图例中得到一条线。我如何才能在我的图例中为每个装箱类别获得一行 注意:我有单独的for循环,以确保较小的圆在较大的圆上绘制 sigcorrs=np.random.rand(100,1) m=底图(llcrnrlon=35,llcrnrlat=30,urcrnrlon=-160,urcrnrlat=63,投影=lcc',分辨率=c',lat_1=20,lat_2=40,lon_0=90,lat_0=50。)

我对数据进行了装箱,并将其绘制在地图上,每个箱子都有一个图例,但每次通过循环时,我都会在图例中得到一条线。我如何才能在我的图例中为每个装箱类别获得一行

注意:我有单独的for循环,以确保较小的圆在较大的圆上绘制

sigcorrs=np.random.rand(100,1)
m=底图(llcrnrlon=35,llcrnrlat=30,urcrnrlon=-160,urcrnrlat=63,投影=lcc',分辨率=c',lat_1=20,lat_2=40,lon_0=90,lat_0=50。)
m、 提款国()
m、 drawmapboundary(填充颜色为淡蓝色)
m、 平行图纸(np.arange(0,90,5.),颜色为灰色,虚线为[1,3],标签为[1,0,0,0])
m、 绘制子午线(np.arange(0,360,15.),颜色为灰色,虚线为[1,3],标签为[0,0,0,1])
m、 填充大陆(颜色为米黄色,湖色为浅蓝色,佐尔德=0)
产品名称(“平均绝对误差”)
对于范围内的(len(clat)):
如果sigcorrs[a]>0.8:
十、 Y=m(克隆[a],克拉特[a])
m、 散射(X,Y,s=300,label='Corr>0.8')
其他:
持续
对于范围内的(len(clat)):

如果sigcorrs[a]>0.6和sigcorrs[a]0.4以及sigcorrs[a],可以通过每个类别只设置一个标签来避免这种情况。 例如,在第一个循环中:

label_added =False
for a in range(len(clat)):
if sigcorrs[a] > 0.8:
    X,Y = m(clon[a],clat[a])  
    if not label_added:
        m.scatter(X,Y,s=300,label='Corr > 0.8')
        label_added = True
    else:
        m.scatter(X,Y,s=300)
else:
    continue
label_added =False
for a in range(len(clat)):
if sigcorrs[a] > 0.8:
    X,Y = m(clon[a],clat[a])  
    if not label_added:
        m.scatter(X,Y,s=300,label='Corr > 0.8')
        label_added = True
    else:
        m.scatter(X,Y,s=300)
else:
    continue