ax.plot_date((dates, dates), (highs, lows), '-')
我目前正在使用这个命令用Matplotlib来绘制金融高点和低点。它工作得很好,但是我如何删除x轴上没有市场数据的日子留下的空白,比如周末和假期?
我有日期、高点、低点、收盘价和开盘价的列表,但我找不到任何用x轴来显示日期但不强制执行恒定刻度的图表的例子。
ax.plot_date((dates, dates), (highs, lows), '-')
我目前正在使用这个命令用Matplotlib来绘制金融高点和低点。它工作得很好,但是我如何删除x轴上没有市场数据的日子留下的空白,比如周末和假期?
我有日期、高点、低点、收盘价和开盘价的列表,但我找不到任何用x轴来显示日期但不强制执行恒定刻度的图表的例子。
8条答案
按热度按时间bqujaahr1#
scikits.timeseries的一个广告功能是“创建具有智能间隔轴标签的时间序列图”。
您可以看到一些示例图here。在第一个示例(如下所示)中,“业务”频率用于数据,它自动排除了假期和周末等。它还屏蔽了缺失的数据点,您可以将其视为此图中的间隙,而不是线性插值。
u0njafvf2#
最新的答案(2018)与Matplotlib 2.1.2,Python 2.7.12
函数
equidate_ax
处理简单日期x轴所需的一切,数据点间距相等。基于this example使用ticker.FuncFormatter
实现。q9yhzks03#
我认为你需要“人工合成”你想要的确切形式的图,通过使用
xticks
将刻度标签设置为代表日期的字符串(当然,即使你所代表的日期不是等间距的,也要将刻度放置在等间距的位置),然后使用普通的plot
。ijnw1ujt4#
对于无效或不存在的值,我通常使用NumPy的NaN(不是数字)。它们由Matplotlib表示为图中的间隙,NumPy是pylab/Matplotlib的一部分。
mwg9r5ms5#
我再次遇到了这个问题,并且能够创建一个体面的函数来处理这个问题,特别是关于日内日期时间。
qyuhtwio6#
您可以简单地将日期更改为字符串:
g6ll5ycj7#
scikits.timeseries
的功能大部分已经转移到pandas中,因此您现在可以重新采样一个对象框,使其只包含工作日的值。然后把它画成正常的
inkz8wg98#
只需使用mplfinance https://github.com/matplotlib/mplfinance