Python 图例有多个点

Python 图例有多个点,python,matplotlib,Python,Matplotlib,我已经编写了一个简单的绘图例程。我遇到的问题是,对于我绘制的每个“数据集”,我在图例中得到了两个点。请参见带有徒手红色箭头的图 代码如下: from collections import OrderedDict from itertools import cycle import matplotlib.backends.backend_agg from matplotlib.figure import Figure def simple_scatter(data, colors='rbg

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

代码如下:

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')

有没有办法把每个数据集都压缩到一个点?

我不确定,但这不是因为您同时使用x和y(标签,点)吗?只试试ax.plot(x…)吗?@Joowani——我不确定我是否理解你的评论
ax.plot(x,…)
将x值绘制为
y值
与单调递增的x值(这不是我想要的)。@DSM——偏差与否,这就是解决方案。请随意将其标记为副本。我自己也考虑过删除这个问题,但不管出于什么原因,我的搜索词都没有找到你的答案。。。所以,也许这会让其他人更容易找到。欢迎来到SO!虽然这个答案在技术上是正确的,而且这个问题是重复的,但您是否可以对您的答案添加一些注释?文档的链接?让它成为一个sscce?
ax.legend(loc='best', shadow=True, fancybox=True, numpoints=1)