在相关矩阵的第一行上创建条形图

时间:2019-01-16 06:49:07

标签: python python-3.x indexing bar-chart correlation

我有一个包含6个变量的数据框,我使用corr_matrix = data.corr()创建了一个相关矩阵。我想创建一个条形图,其值低于0.03、0.8、0.02、0.1和0.95,以仅获得与close_returns的相关性(忽略close_returns与自身的相关性= 1.0)。将相关矩阵中的值转换为浮点图以用于条形图似乎存在问题。

          close_returns open    high      low       close_price  volume     
close_returns   1.0     0.03    0.8       0.02      0.1           0.95
open            ...     ....    ...       ....      ...           ....
high            ...     ....    ...       ....      ...           ....
low             ...     ....    ...       ....      ...           ....
close_price     ...     ....    ...       ....      ...           ....
volume          ...     ....    ...       ....      ...           ....

目前,我必须像下面这样手动将相关性分配给变量。我尝试使用corr_open2 = pd.to_numeric(corr_open)将相关矩阵转换为float,但是不起作用。

corr_matrix = data.corr()
corr_matrix

corr_open=0.03
corr_high=0.8
corr_low=0.02
corr_close_price=0.1
corr_volume=0.95


import matplotlib.pyplot as plt; plt.rcdefaults()
import numpy as np
import matplotlib.pyplot as plt

objects = ('open', 'high', 'low', 'close_price', 'volume')
 y_pos = np.arange(len(objects))
correlation = [0.03, 0.8, 0.02, 0.1, 0.95]
# this does not work 
# correlation = [corr_open, corr_high, corr_low, corr_close, corr_volume]

plt.bar(y_pos, correlation, align='center', alpha=0.5)
plt.xticks(y_pos, objects, fontsize=9, rotation=90)
plt.ylabel('Correlation', fontsize=11)
plt.yticks(size = 9)
plt.title('Correlations with Close Returns', fontsize=12)

plt.show()

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解问题。由于 corr_matrix 是一个数据框,您可以使用 iloc 访问元素

correlation = [corr_matrix['close_returns'].iloc[1], corr_matrix['close_returns'].iloc[2],corr_matrix['close_returns'].iloc[3],corr_matrix['close_returns'].iloc[4]]