Matplotlib正在绘制多个标签

时间:2014-04-05 08:03:19

标签: python python-3.x numpy matplotlib

我的大小为A的矩阵50x4和另一个大小为B的矩阵4*2

import numpy as np
import matplotlib.pyplot as plt

plt.plot(np.dot(A, B), [0]*A.shape[0], "bo", label="Tennis")

plt.legend()
plt.show()

enter image description here

如何让matplotlib只显示一次标签名称?

1 个答案:

答案 0 :(得分:2)

因为您有2列数据。

import numpy as np
import matplotlib.pyplot as plt

A=np.random.rand(50, 4)
B=np.random.rand(4, 2)
C=np.dot(A, B)
D=[0]*A.shape[0]
plt.plot(C, D, "bo", label="Tennis")

plt.legend()
plt.show()

C现在具有形状(50,2),D具有形状(50,)

>>> C.shape
(50, 2)
>>> np.shape(D)
(50,)

plt.plot上的文档说:

  

如果x和/或y是二维的,那么将绘制相应的列。

我建议您使用C.flatten()将数据减少到一列并相应地更改D的维度来解决此问题。