Python 使用Matplotlib向图例添加信息

Python 使用Matplotlib向图例添加信息,python,matplotlib,plot,legend,Python,Matplotlib,Plot,Legend,我有一个上行链路/下行链路应用程序组的图,分布用CDF显示,我希望通过在图例中添加更多信息来改进图,例如,我希望它显示每个变量的点数, 对于此代码,不要向我显示: --- Uplink ___ Downlink 我想看看这个: --- Uplink(54) ___ Downlink(88) 其中54是该上行链路中的标绘点数,其中88是该下行链路中的标绘点数 以下是我想要改进的代码: import csv import matplotlib.pyplot as plt import pylab

我有一个上行链路/下行链路应用程序组的图,分布用CDF显示,我希望通过在图例中添加更多信息来改进图,例如,我希望它显示每个变量的点数, 对于此代码,不要向我显示:

--- Uplink
___ Downlink
我想看看这个:

--- Uplink(54)
___ Downlink(88)
其中54是该上行链路中的标绘点数,其中88是该下行链路中的标绘点数

以下是我想要改进的代码:

import csv
import matplotlib.pyplot as plt
import pylab
#---Reading from a csv file
def getColumn(filename, column):
    results = csv.reader(open(filename), delimiter="\t")
    return [result[column] for result in results]
#---the cdf Function
def cdf(inputList):
    outputList = []
    inputList.sort()
    for i in range(0, len(inputList)):
        outputList.append( [inputList[i], (i+1.0)/len(inputList)] )
    return outputList
#--getting the data i want from the csv file
fgfS=getColumn("dataFG.csv",2)
bgfS=getColumn("dataBG.csv",2)
fgifS=getColumn("dataiFG.csv",2)
bgifS=getColumn("dataiBG.csv",2)
#---the points to plot:
fgfS1=[]
fgfS2=[]

for i in cdf(map(float,fgfS)):
    fgfS1.append(i[0])
    fgfS2.append(i[1])

bgfS1=[]
bgfS2=[]
for i in cdf(map(float,bgfS)):
    bgfS1.append(i[0])
    bgfS2.append(i[1])

fgifS1=[]
fgifS2=[]

for i in cdf(map(float,fgifS)):
    fgifS1.append(i[0])
    fgifS2.append(i[1])

bgifS1=[]
bgifS2=[]
for i in cdf(map(float,bgifS)):
    bgifS1.append(i[0])
    bgifS2.append(i[1])


fig2, (ax2,ax02) = plt.subplots(1,2, sharey=True)
labels=('Uplink','Downlink')
fig2.suptitle('Applications Down/Up link', fontsize=20)
#******************    
ax2.set_title('App 1')
#ax2.set_xlabel('seconds')
ax2.set_ylabel('CDF')
ax2.grid(True)
ax2.plot(fgfS1,fgfS2, 'b')
ax2.plot(bgfS1,bgfS2, 'c')
ax2.set_xscale('log')
ax2.legend(labels,loc='best')
#******************
ax02.set_title('App 3')
ax02.set_xlabel('seconds')
ax02.set_ylabel('CDF')
ax02.grid(True)
ax02.plot(fgifS1,fgifS2, 'b')
ax02.plot(bgifS1,bgifS2, 'c')
ax02.set_xscale('log')
ax02.legend(labels,loc='best')

所以我想添加len(bgfS1)作为例子,但我仍然不知道在哪里以及如何添加

只需将其附加到
标签中
列出组件,这些组件将决定最终显示的内容

所以你想要:

ax2.legend(['{} ({})'.format(lab, cnt) for lab,cnt in izip(labels, (len(fgfS1), len(bgfS1)))],loc='best')

(这基本上只是将计数添加到每个标签上)

您的问题与CDF无关,而且您提供了太多不相关的代码。基本上,你想要的是用图例显示额外的信息-这是一个有效的问题,如果你的答案和代码简洁明了,切中要害,而不仅仅是整个代码,你会增加快速得到答案的机会。