matplotlib 我如何从我自己的数据做一个蜡烛图

bgtovc5b  于 2023-10-24  发布在  其他
关注(0)|答案(2)|浏览(107)

我在网上找到的所有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()

我是根据网上的例子写的。我不知道ax是什么意思,也不知道它是如何使用的。此外,我不知道如何正确输入值列表。现在我得到以下错误:

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],...]

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

ma8fv8wu

ma8fv8wu1#

根据here文档,candlestickquotes参数必须是一个序列(时间,打开,关闭,高,低,.)。如果你只想要没有尾部的矩形,也许你可以使用箱线图。

a0zr77ik

a0zr77ik2#

免责声明:我真的不知道烛台图是想做什么
然而,我可以告诉你以下内容,看看我们得到的这个函数的文档:

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()的方法。欢迎使用面向对象编程。
那么,现在为什么你得到这个错误?好吧,看看在文档中,我们看看什么烛台expects for报价`:

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

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

相关问题