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)