2

我写了一个简单的绘图程序。我遇到的问题是,对于我正在绘制的每个“数据集”,我在图例中得到了两个点。参见带有徒手红色箭头的图。

在此处输入图像描述

这是代码:

from collections import OrderedDict
from itertools import cycle

import matplotlib.backends.backend_agg
from matplotlib.figure import Figure


def simple_scatter(data, colors='rbgcmyk', no_legend=False):
  """Create a simple scatter plot."""
  data = OrderedDict(data)
  fig = Figure()
  matplotlib.backends.backend_agg.FigureCanvasAgg(fig)
  ax = fig.add_subplot(111)
  colors = cycle(colors)
  for label, points in data.iteritems():
    x, y = tuple(zip(*points))[:2]
    ax.plot(x, y, 'o', color=next(colors), label=label)

  if not no_legend:
    ax.legend(loc='best', shadow=True, fancybox=True)

  return fig


figure = simple_scatter([('Foo', ((1, 2), (3, 4))),
                         ('Bar', ((2, 3), (3, 5))),
                         ('Baz', ((2, 2.5), (3, 4.5)))])
figure.savefig('foo.png')

任何想法如何将其降低到每个数据集的一个点?

4

1 回答 1

2
ax.legend(loc='best', shadow=True, fancybox=True, numpoints=1)
于 2013-09-23T19:49:46.130 回答