我有以下数据帧:
symbol DAL MS QQQ SPY TLT XLE
symbol
DAL NaN NaN NaN NaN NaN NaN
MS 0.560979 NaN NaN NaN NaN NaN
QQQ 0.621045 0.789771 NaN NaN NaN NaN
SPY -0.576444 -0.843485 -0.953304 NaN NaN NaN
TLT 0.186840 0.421957 0.333320 -0.347808 NaN NaN
XLE 0.115093 0.578970 0.559711 -0.701126 0.38047 NaN
然后,我将数据帧堆叠并排序,并将结果绘制为条形图,如下所示:
dfstacked = corr_df.stack().order()
dfstacked.plot(kind='bar')
symbol symbol
SPY QQQ -0.953304
MS -0.843485
XLE SPY -0.701126
SPY DAL -0.576444
TLT SPY -0.347808
XLE DAL 0.115093
TLT DAL 0.186840
QQQ 0.333320
XLE TLT 0.380470
TLT MS 0.421957
XLE QQQ 0.559711
MS DAL 0.560979
XLE MS 0.578970
QQQ DAL 0.621045
MS 0.789771
我现在尝试做的事情(没有成功)就是不将它绘制成条形图,而是通过填充零下方和零区以上的区域来绘制它.我的猜测是我应该使用类似于这些示例的fill_between:link:
ax.fill_between(dfstacked.index, 0, dfstacked.values, where = dfstacked.values > 0, interpolate=True)
ax.fill_between(dfstacked.index, dfstacked.values, 0, where = dfstacked.values < 0, interpolate=True)
我收到错误:TypeError:输入类型不支持ufunc’isfinite’,根据强制转换规则”safe’,输入无法安全地强制转换为任何支持的类型