【问题标题】:Compare stock indices of different sizes Python比较不同大小的股票指数 Python
【发布时间】:2019-04-18 03:02:16
【问题描述】:
我正在使用 Python 尝试对不同的股票市场进行一些宏观经济分析。我想知道如何正确比较不同大小的索引。例如,道琼斯指数在 y 轴上约为 25,000,而罗素 2000 仅在 1,500 左右。我知道网站 tradingview 可以在他们的在线章程中比较这两者。它所做的是缩小/放大背景图表,使其在新的 y 轴上匹配另一个。有没有一些统计方法可以让我在 Python 中做同样的事情?
【问题讨论】:
标签:
python
plot
statistics
correlation
【解决方案1】:
这里有多种可能性。假设您通过以下调用定义轴
fig, ax = plt.subplots()
然后,您可以将 y 轴的刻度更改为对数使用
ax.set_yscale('log')
您还可以通过调用在同一个绘图内定义两个不同比例的 y 轴
ax2 = ax.twinx()
然后在 ax 上绘制大值,在 ax2 上绘制小值。只有当您最多有两个值范围时,这才会有效。
另一种解决方案是创建一个在绘图内缩放的新轴
from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes
ax2 = zoomed_inset_axes(ax, zoom, bbox_to_anchor=(, ),
bbox_transform=ax.transAxes, loc='', borderpad=)
最后一件事是直接扩展您的数据。例如,如果道琼斯指数在 20,000 到 30,000 之间变化,那么您可以应用以下变换
DowJones = (DowJones - min(DowJones)) / (max(DowJones) - min(DowJones))
然后您的值将在 0 和 1 之间变化。对其他变量应用类似的转换将允许您更轻松地比较同一张图上的变化,而无需对轴进行任何更改。
【解决方案2】:
我知道网站 tradingview 可以在他们的在线章程中比较这两者。它所做的是缩小/放大背景图表,使其在新的 y 轴上匹配另一个。
这些网站通过将两个指数的初始起点固定在 100 来重新调整它们。即如果道琼斯指数为 25000 点,标准普尔指数为 2500 点,则道琼斯指数除以 250 最初为 100,标准普尔指数为 25。然后您有两个从 100 开始的指数,然后您可以并排比较它们。
另一种方法(只有当您有两个系列时才有效) - 将 y 轴设置在一个系列的右侧,将另一个系列设置在左侧。