一张图有两个不同的 y 轴

时间:2021-06-03 08:12:05

标签: python pandas matplotlib

我想问一下如何创建一个具有两个不同 y 轴的图形?

!pip install yfinance
import yfinance as yf
import numpy as np 

df=yf.download('cl=f',start='2019-01-04',end='2021-06-2',interval='1d')

df['LogReturn'] = np.log(df['Close']).diff()
df['volitality']=df['LogReturn'].rolling(3).std()


#I want plot Close price with volitality, but the issu is that volitality y axis is way less than the price 

df[['volitality']].plot(figsize=(10,5));
df['Close'].plot(figsize=(10,5))

 

这使它们变成了两个不同的图。我想创建一个带有两个 y 轴的图形。一个显示收盘价,另一个显示波动率。有什么建议吗? 谢谢

1 个答案:

答案 0 :(得分:0)

我创建了一个包含 2 列“a”、“b”的数据框。每个包含 100 个随机数

import random

a = [random.randint(-100,100) for _ in range(100)]
b = [random.randint(-100,500) for _ in range(100)]
df = pd.DataFrame(list(zip(a,b)), columns=['a','b'])

接下来我使用以下代码绘制图表

fig, ax1 = plt.subplots(figsize=(12,8))
ax1.plot(df['a'])
ax2=ax1.twinx()
ax2.plot(df['b'], color='red')
fig.tight_layout()
plt.show()

enter image description here