Matplotlib图例帮助

2024-05-15 01:34:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个剧本,情节有好几点。我也试图从这些方面创造一个传奇。总结一下我的脚本,我正在绘制几个“类型”的点(称它们为“a”、“b”、“c”)。这些点有不同的颜色和形状:“a”-“go”“b”-“rh”“c”-“k^”。

这是我剧本中相关部分的简短版本:

lbl = #the type of point x,y is (a,b,c)
for x,y in coords:
   if lbl in LABELS:
      plot(x, y, color)
   else:
      LABELS.add(lbl)
      plot(x, y, color, label=lbl)
 legend()

我在这里做的只是绘制一堆点并给它们分配一个标签。但是,我发现如果我为每个点添加了标签,那么图例将包含每个点的条目。每种类型的点(a,b,c)只需要一个入口。所以,我把剧本改成上面的样子。有更好的办法吗?如果我有一百万种不同类型的点,那么数据结构标签(一组)将占用大量空间。


Tags: in脚本go类型labelsplot颜色绘制
1条回答
网友
1楼 · 发布于 2024-05-15 01:34:28

根据点的类型分组xy。 一次调用plot绘制同一类型的所有点:

import pylab
import numpy as np

lbl=np.array(('a','b','c','c','b','a','b','c','a','c'))
x=np.random.random(10)
y=np.random.random(10)
for t,color in zip(('a','b','c'),('go','rh','k^')):
    pylab.plot(x[lbl==t],y[lbl==t],color,label=t)
pylab.legend()
pylab.show()

alt text

相关问题 更多 >

    热门问题