我试图做一个散点图,并从列表中不同的数字标注的数据点。 因此,例如,我想标绘Y VS x和,用正相应的数字标注。
y = [2.56422, 3.77284, 3.52623, 3.51468, 3.02199]
z = [0.15, 0.3, 0.45, 0.6, 0.75]
n = [58, 651, 393, 203, 123]
ax = fig.add_subplot(111)
ax1.scatter(z, y, fmt='o')
有任何想法吗?
我试图做一个散点图,并从列表中不同的数字标注的数据点。 因此,例如,我想标绘Y VS x和,用正相应的数字标注。
y = [2.56422, 3.77284, 3.52623, 3.51468, 3.02199]
z = [0.15, 0.3, 0.45, 0.6, 0.75]
n = [58, 651, 393, 203, 123]
ax = fig.add_subplot(111)
ax1.scatter(z, y, fmt='o')
有任何想法吗?
我不知道这需要数组或列表任意绘制方法,但你可以使用annotate()
而在遍历值n
。
y = [2.56422, 3.77284, 3.52623, 3.51468, 3.02199]
z = [0.15, 0.3, 0.45, 0.6, 0.75]
n = [58, 651, 393, 203, 123]
fig, ax = plt.subplots()
ax.scatter(z, y)
for i, txt in enumerate(n):
ax.annotate(txt, (z[i], y[i]))
有很多的用于格式化选项annotate()
请参阅matplotlib网站:
在版本的早于matplotlib 2.0, ax.scatter
没有必要绘制文本没有标记。 在2.0版本中,你将需要ax.scatter
设定适当的范围和标记文本。
y = [2.56422, 3.77284, 3.52623, 3.51468, 3.02199]
z = [0.15, 0.3, 0.45, 0.6, 0.75]
n = [58, 651, 393, 203, 123]
fig, ax = plt.subplots()
for i, txt in enumerate(n):
ax.annotate(txt, (z[i], y[i]))
而在这个环节 ,你可以找到在3D的例子。
如果有人试图对上述解决方案应用到.scatter(),而不是.subplot()
我试图运行下面的代码
y = [2.56422, 3.77284, 3.52623, 3.51468, 3.02199]
z = [0.15, 0.3, 0.45, 0.6, 0.75]
n = [58, 651, 393, 203, 123]
fig, ax = plt.scatter(z, y)
for i, txt in enumerate(n):
ax.annotate(txt, (z[i], y[i]))
但跑进错误指出“无法解压缩非迭代PathCollection对象”,与该错误代码行处无花果,AX = plt.scatter特别指向(Z,Y)
我最终使用下面的代码解决了这个错误
plt.scatter(z, y)
for i, txt in enumerate(n):
plt.annotate(txt, (z[i], y[i]))
我没想到那里是.scatter()和.subplot()我应该知道之间的差异。
您也可以使用pyplot.text
(见这里 )。
def plot_embeddings(M_reduced, word2Ind, words):
""" Plot in a scatterplot the embeddings of the words specified in the list "words".
Include a label next to each point.
"""
for word in words:
x, y = M_reduced[word2Ind[word]]
plt.scatter(x, y, marker='x', color='red')
plt.text(x+.03, y+.03, word, fontsize=9)
plt.show()
M_reduced_plot_test = np.array([[1, 1], [-1, -1], [1, -1], [-1, 1], [0, 0]])
word2Ind_plot_test = {'test1': 0, 'test2': 1, 'test3': 2, 'test4': 3, 'test5': 4}
words = ['test1', 'test2', 'test3', 'test4', 'test5']
plot_embeddings(M_reduced_plot_test, word2Ind_plot_test, words)