def plotPrecisionRecallDiagram(title="title", points=None, labels=None, loc="best",xy_ranges = [0.6, 1.0, 0.6, 1.0], save_file = None):
"""Plot (precision,recall) values with 10 f-Measure equipotential lines.
Plots into the current canvas.
Points is a list of (precision,recall) pairs.
Optionally you can also provide labels (list of strings), which will be
used to create a legend, which is located at loc.
"""
if labels:
ax = pl.axes([0.1, 0.1, 0.7, 0.8]) # llc_x, llc_y, width, height
else:
ax = pl.gca()
pl.title(title)
pl.xlabel("Precision")
pl.ylabel("Recall")
_plotFMeasures(start = min(xy_ranges[0],xy_ranges[2]), end = max(xy_ranges[1],xy_ranges[3]))
if points:
getColor = it.cycle(colors).next
getMarker = it.cycle(markers).next
scps = [] # scatter points
for i, (x, y) in enumerate(points):
label = None
if labels:
label = labels[i]
print i, x, y, label
scp = ax.scatter(x, y, label=label, s=50, linewidths=0.75,
facecolor=getColor(), alpha=0.75, marker=getMarker())
scps.append(scp)
# pl.plot(x,y, label=label, marker=getMarker(), markeredgewidth=0.75, markerfacecolor=getColor())
# if labels: pl.text(x, y, label, fontsize="x-small")
if labels:
# pl.legend(scps, labels, loc=loc, scatterpoints=1, numpoints=1, fancybox=True) # passing scps & labels explicitly to work around a bug with legend seeming to miss out the 2nd scatterplot
#pl.legend(scps, labels, loc=(1.01, 0), scatterpoints=1, numpoints=1, fancybox=True) # passing scps & labels explicitly to work around a bug with legend seeming to miss out the 2nd scatterplot
pl.legend(scps, labels, loc= loc, scatterpoints=1, numpoints=1, fancybox=True,fontsize = 10) # passing scps & labels explicitly to work around a bug with legend seeming to miss out the 2nd scatterplot
pl.axis(xy_ranges) # xmin, xmax, ymin, ymax
if save_file:
pl.savefig(save_file)
pl.show()
pl.close()
plot_recallPrecision.py 文件源码
python
阅读 22
收藏 0
点赞 0
评论 0
评论列表
文章目录