如何使用 matplotlib 从我自己的数据制作烛台图

Posted

技术标签:

【中文标题】如何使用 matplotlib 从我自己的数据制作烛台图【英文标题】:How can I make a candlestick chart from my own data using matplotlib 【发布时间】:2013-10-11 20:22:07 【问题描述】:

我在网上找到的所有examples 都与从互联网上提取数据有关。我有自己的数据,我只想要烛台的最大值和最小值(不需要烛台上的开始和结束水平)。

我有一个十进制值列表:

values=[[5,6],[6,7],[7,8.8],...]

我有

from matplotlib.pyplot import subplots, draw
from matplotlib.finance import candlestick, candlestick2

fig, ax = subplots()
candlestick(ax, values, width=0.5)
plt.show()

我是根据在线示例编写的。我不确定斧头是什么意思以及它是如何使用的。另外,我不确定如何正确输入值列表。现在我收到以下错误:

Traceback (most recent call last):
  File "algor.py", line 41, in <module>
    candlestick(ax, values, width=0.5)
  File "/usr/lib/pymodules/python2.7/matplotlib/finance.py", line 330, in candlestick
    t, open, close, high, low = q[:5]
ValueError: need more than 2 values to unpack

是否因为我只有 2 个而不是 4 个输入而抱怨?我只想要一个没有尾巴的矩形。我应该将值更改为

values=[[5,5,6,6],[7,7,8.8,8.8],...]

编辑:这给了我同样的错误

【问题讨论】:

如果这样做会怎样? Python被解释了,不用花太多时间去试试看 我试试 values=[[5,5,6,6],[7,7,8.8,8.8]]?我得到相同的值错误。 作为警告,在 1.4 中对 finance 进行了重大重构 【参考方案1】:

根据文档here,candlestickquotes 参数必须是(时间、开盘、收盘、高点、低点……)的序列。如果您只想要没有尾巴的矩形,也许您可​​以改用box plot。

【讨论】:

【参考方案2】:

免责声明:我真的不知道烛台图想要做什么

但是,通过查看我们获得的此功能的文档,我可以告诉您以下内容:

Definition: candlestick(ax, quotes, width=0.2, colorup=u'k', colordown=u'r', alpha=1.0)
Docstring:
Plot the time, open, close, high, low as a vertical line ranging
from low to high.  Use a rectangular bar to represent the
open-close span.  If close >= open, use colorup to color the bar,
otherwise use colordown

现在与您一起完成此操作,ax 是一组轴的轴实例。您在调用fig, ax = plt.subplots() 时创建了它。 ax 的方法可以是 called by ax.plot()ax.set_xlims()。欢迎来到面向对象编程。

那么现在为什么会出现此错误?好吧看看文档我们看看什么candlestickexpects forquotes`:

quotes : sequence of (time, open, close, high, low, ...) sequences
    As long as the first 5 elements are these values,
    the record can be as long as you want (eg it may store volume).

所以恐怕你必须给它你提到你不想给它的开始和结束值。也许你可以弥补一些?所以基本上要让它运行,试试像

values = [[1, 2, 3, 4, 5], [2, 3, 4, 5, 6]]
candlestick(ax, values)

值中的每个项目都将按照文档中的说明进行绘制。

要学习如何自己找到这些东西,尤其是在金融包无法在线找到文档的情况下,我建议您下载并安装 ipython 。这是一个 Python 解释器,您可以在其中查询某些内容以了解更多信息,例如键入

candlestick?

它会打印文档,输入

ax. # and then press tab after the full stop

它会打印出你可以用轴做的所有事情!

【讨论】:

以上是关于如何使用 matplotlib 从我自己的数据制作烛台图的主要内容,如果未能解决你的问题,请参考以下文章

如何在 matplotlib 中制作空白子图?

如何使用 matplotlib 为许多子图制作一个图例?

如何在 matplotlib 中制作无衬线上标或下标文本?

如何从 matplotlib 中的图像数组制作视频?

如何在 Google Colab 交互式中制作 matplotlib 图

如何使用Matplotlib制作简单的3D线?