如何用红色突出显示 30 级以上的 VIX 图?

问题描述 投票:0回答:1

我想用红色突出显示 VIX 图上指数超过 30 点的部分。

以下示例代码如下:

import yfinance as yf
import matplotlib.pyplot as plt

# Fetch VIX data
vix_data = yf.download('^VIX', start='2020-01-01', end='2024-12-31')

# Extract the dates and VIX closing values
dates = vix_data.index
vix_close = vix_data['Close']

# Plot the VIX data
plt.figure(figsize=(12, 6))
plt.plot(dates, vix_close, label='VIX Close', color='blue', linewidth=1.5)

# Highlight regions where VIX is above 30
# TODO
# plt.fill_between(dates, vix_close, 30, where=(vix_close > 30), color='red', alpha=0.5, label='Above 30')

# Add threshold lines
plt.axhline(y=30, color='red', linestyle='--', label='Threshold (30 pts)')
plt.axhline(y=20, color='orange', linestyle='--', label='Threshold (20 pts)')

# Add labels and title
plt.title('VIX Index with Highlights Above 30', fontsize=16)
plt.xlabel('Date', fontsize=12)
plt.ylabel('VIX Level', fontsize=12)
plt.legend(fontsize=10)
plt.grid(True)

# Show the plot
plt.show()

我的代码无法超越 fill_ Between 函数,所以我用 TODO 标记它。

我是 matplotlib 的新手。你能建议我如何修复这个 python 代码吗?

我使用的工具列表如下:

matplotlib 3.10.0rc1
yfinance 0.2.50
python matplotlib yfinance
1个回答
0
投票
# Highlight regions where VIX is above 30
plt.fill_between(dates, vix_close, 30, where=(vix_close > 30), color='red', alpha=0.2, label='Above 30')

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.