Python 绘制协方差矩阵的非对角值
这段代码输出我的所有10个协方差矩阵,并绘制2x2矩阵中的每个点Python 绘制协方差矩阵的非对角值,python,pandas,numpy,covariance,covariance-matrix,Python,Pandas,Numpy,Covariance,Covariance Matrix,这段代码输出我的所有10个协方差矩阵,并绘制2x2矩阵中的每个点 for i in range(10): columns = datawithoutmean[:, i*2:i*2 + 2] cov = numpy.cov(columns.T) print(cov) matplotlib.pyplot.scatter(cov[:,0], cov[:,1], c = 'r', marker = '.') matplotlib.pyplot.show() 如何具体输出
for i in range(10):
columns = datawithoutmean[:, i*2:i*2 + 2]
cov = numpy.cov(columns.T)
print(cov)
matplotlib.pyplot.scatter(cov[:,0], cov[:,1], c = 'r', marker = '.')
matplotlib.pyplot.show()
如何具体输出每个协方差矩阵的非对角值,并使用pyplot进行绘制
作为参考,第一个协方差矩阵如下所示:
[[10.34020531 -0.01203439]
[-0.01203439 2.06085007]]
我想绘制非对角线(两列之间的协方差),因此在本例中为-0.01203439
编辑:我发现我可以像这样得到非对角线:
如果我这样做,它将输出两列之间的协方差值:
for i in range(10):
columns = datawithoutmean[:, i*2:i*2 + 2]
cov = numpy.cov(columns.T)
off_diagonal = cov[0][1] # covariance value
但是我如何使用pyplot在散点图中绘制这些值呢?你试过反对角线的
np.diag(cov.T)
?我刚试过,它正在输出方差(对角线)。即使我转置它,它也会给我相同的值(方差)啊,对不起,我的意思是cov[:,:-1]
。转置显然不起作用。