2024-05-16 09:46:36 发布
网友
在用Ruby或Python这样的高级语言创建一个金融开放-高-低-低-收盘(OHLC)图表时,我的最佳选择是什么?虽然似乎有很多选择来作图,但我没有看到任何宝石或鸡蛋有这种图表。
http://en.wikipedia.org/wiki/Open-high-low-close_chart(但我不需要移动平均线或布林格带)
JFreeChart可以在Java中做到这一点,但是我希望我的代码库尽可能的小和简单。
谢谢!
您可以在Python中使用Pylab(matplotlib.finance)。这里有一些例子:http://matplotlib.sourceforge.net/examples/pylab_examples/plotfile_demo.html。在Beginning Python Visualization中有一些关于这个问题的好材料。
matplotlib.finance
更新:我想你可以用matplotlib.finance.candlestick来制作日本烛台效果。
您可以使用matplotlib和matplotlib.pyplot.bar的可选bottom参数。然后,您可以使用第plot行指示开盘价和收盘价:
bottom
plot
例如:
#!/usr/bin/env python import numpy as np import matplotlib.pyplot as plt from matplotlib import lines import random deltas = [4, 6, 13, 18, 15, 14, 10, 13, 9, 6, 15, 9, 6, 1, 1, 2, 4, 4, 4, 4, 10, 11, 16, 17, 12, 10, 12, 15, 17, 16, 11, 10, 9, 9, 7, 10, 7, 16, 8, 12, 10, 14, 10, 15, 15, 16, 12, 8, 15, 16] bases = [46, 49, 45, 45, 44, 49, 51, 52, 56, 58, 53, 57, 62, 63, 68, 66, 65, 66, 63, 63, 62, 61, 61, 57, 61, 64, 63, 58, 56, 56, 56, 60, 59, 54, 57, 54, 54, 50, 53, 51, 48, 43, 42, 38, 37, 39, 44, 49, 47, 43] def rand_pt(bases, deltas): return [random.randint(base, base + delta) for base, delta in zip(bases, deltas)] # randomly assign opening and closing prices openings = rand_pt(bases, deltas) closings = rand_pt(bases, deltas) # First we draw the bars which show the high and low prices # bottom holds the low price while deltas holds the difference # between high and low. width = 0 ax = plt.axes() rects1 = ax.bar(np.arange(50), deltas, width, color='r', bottom=bases) # Now draw the ticks indicating the opening and closing price for opening, closing, bar in zip(openings, closings, rects1): x, w = bar.get_x(), 0.2 args = { } ax.plot((x - w, x), (opening, opening), **args) ax.plot((x, x + w), (closing, closing), **args) plt.show()
创建这样的绘图:
很明显,你想把它打包成一个函数,用(open, close, min, max)元组绘制曲线图(而且你可能不想随机分配你的开盘价和收盘价)。
(open, close, min, max)
你考虑过使用R和quantmod包吗?它可能正好满足你的需要。
您可以在Python中使用Pylab(
matplotlib.finance
)。这里有一些例子:http://matplotlib.sourceforge.net/examples/pylab_examples/plotfile_demo.html。在Beginning Python Visualization中有一些关于这个问题的好材料。更新:我想你可以用matplotlib.finance.candlestick来制作日本烛台效果。
您可以使用matplotlib和matplotlib.pyplot.bar的可选
bottom
参数。然后,您可以使用第plot
行指示开盘价和收盘价:例如:
创建这样的绘图:
很明显,你想把它打包成一个函数,用
(open, close, min, max)
元组绘制曲线图(而且你可能不想随机分配你的开盘价和收盘价)。你考虑过使用R和quantmod包吗?它可能正好满足你的需要。
相关问题 更多 >
编程相关推荐