散点图标签在一行中 - Matplotlib
问题描述:
可以在Matplolib中一次设置所有标签吗?散点图标签在一行中 - Matplotlib
例如,我有这样一段代码绘制散点图:
cmap = plt.get_cmap('Set1')
colors = [cmap(i) for i in numpy.linspace(0, 1, simulations+1)]
plt.figure(figsize=(7, 7))
plt.scatter(coords[:, 0], coords[:, 1], marker='o', c=colors, s=50, edgecolor='None')
plt.legend(loc='lower left',)
simulations = 7
哪里和coords
是具有形状的numpy.array(7,2)。
这给了我这样一个情节:
如果我改变的最后一个行:
plt.scatter(coords[:, 0], coords[:, 1], marker='o', c=colors, s=50, edgecolor='None', label=range(simulations))
plt.legend(loc='lower left')
我得到:
我我想知道我是否需要做一个循环来做t他分散和设置每个标签,如果有一种方法可以一次完成。
谢谢。
答
我不知道如何用散点图来做到这一点。但如果您需要不同的标签,我不确定是否有优势使用scatter
而不是plot
。
这个怎么样?
import numpy as np
import matplotlib.pyplot as plt
n = 10
coords = np.random.random((n,2))
cmap = plt.get_cmap('Set1')
for i, (x, y) in enumerate(coords):
plt.plot(x, y, 'o', color=cmap(i/float(n)), label='%i'%i, ms=9, mec='none')
plt.axis((-0.5, 1.5, -0.5, 1.5))
plt.legend(loc='lower left', numpoints=1, frameon=False)
plt.show()