我有一个包含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()
答案 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]]