我一直在努力规划一个价值非常小和非常大的酒吧。我试着用两个y轴绘制图表
但是,输出无法表示数据,并且不同y轴上的绿色列无法与其他数据进行比较。是否有一种解决方案来改变绿色栏以显示2015-2019年的数据,2020年的数据表示在第二个y轴上?还是有其他好的解决办法
请帮帮我
守则:
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dict_ = {'date': [pd.Timestamp('20150720'),pd.Timestamp('20160720'),pd.Timestamp('20170720'),pd.Timestamp('20180720'),pd.Timestamp('20190720'),pd.Timestamp('20200720')],
'BKNG': [15.22, 6.36, 5.05, 5, 9.3641, -3],
'MCD' : [25.22, 11.36, 7.05, 9, 8.3641, -6],
'YUM' : [52.22, 21.36, 25.05, 26, 21.3641, -1000]
}
df = pd.DataFrame(dict_)
df['date'] = df['date'].dt.year
df.set_index('date',inplace=True)
fig1,ax = plt.subplots(figsize=(10,6))
ax.bar(df.index+0.0, df['BKNG'],width=0.1,label='BKNG')
ax.bar(df.index+0.1, df['MCD'],width=0.1,label='MCD')
plt.grid(True)
plt.legend()
plt.xlabel('date')
plt.ylabel('value')
plt.title('ROE')
ax2 = ax.twinx()
ax2.bar(df.index+0.2, df['YUM'],width=0.1,label='YUM', color='g')
plt.legend(loc=3)
plt.ylabel('YUM')
如果要使用第一个y轴显示2019年之前的数据,使用第二个y轴显示2020年之前的数据,可以使用:
或者,我会对所有数据使用symlog,如下所示:
您可能会看到缩放数据的建议,这将丢失原始度量单位。在很多情况下,这很好,但在商业环境中,它有时是不可解释的
如果要保留度量单位,可以创建两个图表,修改轴范围,然后使用一些对角线指示轴中存在间隙。这是一种非常传统的方法,用于绘制具有如此大差距的值,并且大多数人都可以理解
相关问题 更多 >
编程相关推荐