python图例重复显示_python:用重复的图例绘制

博客内容讲述了在Python中使用matplotlib库绘制图形时遇到的问题,即图例重复显示,长度不正确。作者通过组合不同颜色、形状和标签来表示不同类别的点,并希望图例只显示三次,分别对应三个类别。尽管图表绘制正确,但图例出现了错误,长度为8,而非预期的3。博主寻求一种自动化的方法来解决这个问题,而不只是手动创建包含“None”的图例列表。
摘要由CSDN通过智能技术生成

我有3个文件要绘制(pos_Felix,pos_Iando,pos_Fabiotto)。因为某些原因,我不得不把它们放在一个独特的文件里。可复制代码如下:from matplotlib import pylab

import numpy

pos_Felix = numpy.array([ [ 3.05150657e-01, -7.33839341e-01],

[ 3.24785115e-01, -5.70699171e-01],

[ -1.90952119e-02, -9.31596157e-01],

[ 1.01292710e+00, -3.75807265e-01],

[ 3.32793456e-01, -6.54133767e-01]])

pos_Iando = numpy.array([ [ 3.41211808e-04, -1.43754261e-02],

[ -1.18384581e-01, -4.84193704e-01]])

pos_Fabiotto = numpy.array([ [ -4.63776141e-01, 1.62560557e+00]])

pos_all = numpy.concatenate([pos_Felix,pos_Iando,pos_Fabiotto],axis=0)

myColors = ['green']*pos_Felix.shape[0] + ['red']*(pos_Iando.shape[0]+pos_Fabiotto.shape[0])

myShapes = ['.']*pos_Felix.shape[0] + ['^']*pos_Iando.shape[0] + ['*']*pos_Fabiotto.shape[0]

myLabels = ['Felix']*pos_Felix.shape[0] + ['Iando']*pos_Iando.shape[0] + ['Fabiotto']*pos_Fabiotto.shape[0]

pylab.figure()

pylab.title("Multi Dimensional Scaling")

pylab.xlabel("X")

pylab.ylabel("Y")

for i in range(pos_all.shape[0]):

pylab.plot(pos_all[i,0],pos_all[i,1],myShapes[i], color=myColors[i], label=myLabels[i])

pylab.legend(loc="upper left")

pylab.show()

简而言之,我必须绘制一系列的点(我确信“for”结构不是最好的,但至少到目前为止它是有效的),每个点都有颜色,每个点属于一个类别(“Felix”、“Iando”和“Fabiotto”),每个点都有标记。图表没问题,除了图例。它的长度是8而不是3。我得到以下图像(红色表示我想删除的内容):

9b26504f310204ec14fea18d987391cc.png

我相信有一个快速的方法来解决我的问题。。。但我不知道是哪一个!

ps=我知道我可以创建一个图例列表,其中只有3个元素在正确的位置,其他元素为“None”,但在我的实际情况下,我有很长的列表,我需要一个自动化的过程。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值