matplotlib == 1.5.2 pylab == 0.1.3
我试图再现从该进程的曲线图“CS224d深度学习的NLP”,第二讲。
它的外观应如下所示:
我正在使用以下代码:
import numpy as np
import matplotlib.pyplot as plt
la = np.linalg
words = ['I', 'like', 'enjoy', 'deep', 'learning', 'NLP', 'flying', '.']
X = np.array([[0,2,1,0,0,0,0,0],
[2,0,0,1,0,1,0,0],
[1,0,0,0,0,0,1,0],
[0,1,0,0,1,0,0,0],
[0,0,0,1,0,0,0,1],
[0,1,0,0,0,0,0,1],
[0,0,1,0,0,0,0,1],
[0,0,0,0,1,1,1,0]])
U, s, Vh = la.svd(X, full_matrices=False)
for i in xrange(len(words)):
plt.text(U[i,0], U[i,1], words[i])
plt.autoscale()
plt.show()
但是,单词不会出现在图形上。
如果我删除指令
plt.autoscale()
如果我使用此指令,那么即使再次调用text(),我也看不到任何文本。
我已经看到了使用子图并为x和y轴设置确切范围的解决方案,但这似乎不必要地复杂。
我还能尝试什么?
当您设置轴限制以按以下此答案显示文本时,它将显示单词。
import numpy as np
import matplotlib.pyplot as plt
la = np.linalg
words = ['I', 'like', 'enjoy', 'deep', 'learning', 'NLP', 'flying', '.']
X = np.array([[0,2,1,0,0,0,0,0],
[2,0,0,1,0,1,0,0],
[1,0,0,0,0,0,1,0],
[0,1,0,0,1,0,0,0],
[0,0,0,1,0,0,0,1],
[0,1,0,0,0,0,0,1],
[0,0,1,0,0,0,0,1],
[0,0,0,0,1,1,1,0]])
U, s, Vh = la.svd(X, full_matrices=False)
fig, ax = plt.subplots()
for i in xrange(len(words)):
ax.text(U[i,0], U[i,1], words[i])
ax.set_xlim([-0.8, 0.2])
ax.set_ylim([-0.8, 0.8])
plt.show()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句