用于绘制标签的字符串格式,但对于图例条目则给出整个字符串



我有一个整数数组,作为图形上各种点的标识。

k = [42., 64., 73., 31., 31., 31., 31., 2., 5., 16.]
plt.plot(x, y, 'o', label='name{}'.format(k))
plt.legend()

绘制图例时,每个条目的整个数字数组都显示在图例中。我需要的是用它自己的x-y对标记每个k值,如(x[0], y[0])和标签(k[0])。我怎样才能使脚本停止显示整个数组为每个标签?

是否可用?我制作了一些随机的x和y值,并将数据合并到Pandas DataFrame中。

#!/usr/bin/env ipython
# ---------------------
import numpy as np
import matplotlib.pylab as plt
import pandas as pd
k = [42., 64., 73., 31., 31., 31., 31., 2., 5., 16.]
x = np.random.random((np.size(k)));
y = np.random.random((np.size(k)));
# ----------------------------------------------
# let us have data collected to some object, that we can easily manipulate (e.g. Pandas DataFrame, dictionary...):
data = {'x':x,'y':y,'k':[int(vv) for vv in k]};
df = pd.DataFrame.from_dict(data);df = df.set_index('k')
# ----------------------------------------------
for indval in set(df.index):
plt.plot(df.loc[indval].x, df.loc[indval].y, 'o', label=indval,ms = 10)
plt.legend()
plt.show()

最新更新