我将{稀疏矩阵mat7
与axis=0
进行求和然后绘制。
mat7 = np.zeros(shape=(5,4))
mat7[2] = 5
mat7[3,1:3] = 7
print mat7
>[[ 0. 0. 0. 0.]
[ 0. 0. 0. 0.]
[ 5. 5. 5. 5.]
[ 0. 7. 7. 0.]
[ 0. 0. 0. 0.]]
ax0 = plt.subplot2grid((1, 1), (0, 0), rowspan=1, colspan=1)
ax0.plot(np.sum(mat7,0))
plt.show()
我希望每个sum值都具有非零元素来自的行索引。从这里的4点开始,如何分别制作标签(2),(2,3),(2,3),(2)
?因为第一和第四点仅来自第二行,而第二和第三点来自第二和第三行的非零元素之和。
因为它不是来自列的索引而是总和已经折叠的行,它是链接回来并制作标签的方式吗?
答案 0 :(得分:3)
你可以使用
以下是一个例子:
import numpy as np
import matplotlib.pyplot as plt
mat7 = np.zeros(shape=(5,4))
mat7[2] = 5
mat7[3,1:3] = 7
print(mat7)
x = list(range(mat7.shape[1]))
y = np.sum(mat7,0)
labels = [np.nonzero(col)[0].tolist() for col in mat7.T]
ax0 = plt.subplot2grid((1, 1), (0, 0), rowspan=1, colspan=1)
ax0.plot(x,y)
for x,y,label in zip(range(4), np.sum(mat7,0), labels):
ax0.annotate('{}'.format(label), xy=(x,y), textcoords='data')
plt.show()