我需要创建一个基本上是烛台图的图,但我需要上下阴影与主体一样粗,而不是典型的线条。我想我可以用matplotlib绘制它,但我不知道如何操作。我尝试用mplfinance,但没有办法定义阴影的厚度。你知道吗?原始数据集是yfinance的典型数据集,一个包含日期时间和"open","close","high","low"列的索引。谢谢你的支持。
xuo3flqw1#
这实际上*可能是*可能的mplfinance,但我不完全确定。看一看the "widths" tutorial,通读整个教程,确保你理解所有变量是如何相互作用的。也就是说,根据你的问题,我猜你最感兴趣的部分(大约3/4的页面)是“手动定制蜡烛,ohlc,音量和线宽”。查看**增加candle_linewidth和/或减少candle_width**是否有帮助。您是否可以发布一个绘图示例,说明您希望蜡烛的确切外观?我不能说我曾经见过灯芯(阴影)与蜡烛主体宽度相同的烛台图表。
mplfinance
candle_linewidth
candle_width
这就是您想要做的吗?
fruv7luv2#
下面是一个起始代码,您可以使用box_width、colors等。我使variable names变得相当明显:
box_width
colors
variable names
import numpy as np import matplotlib.pyplot as plt from matplotlib.patches import FancyBboxPatch from matplotlib.patches import BoxStyle from matplotlib.lines import Line2D number_of_candles = 13 # 30minute candles; box_width = 1.0 off_set = box_width / 2 OHLC_grouped_into_candlesticks = np.zeros([number_of_candles, 4], dtype=float) Open, High, Low, Close, fancy_box_padding, lines, boxes = 0, 1, 2, 3, 0.0005, [], [] ax = plt.subplot(1, 1, 1) for indexing_candlesticks in range(number_of_candles): top_of_box = np.max([OHLC_grouped_into_candlesticks[indexing_candlesticks, Open], OHLC_grouped_into_candlesticks[indexing_candlesticks, Close]]) bottom_of_box = np.min([OHLC_grouped_into_candlesticks[indexing_candlesticks, Open], OHLC_grouped_into_candlesticks[indexing_candlesticks, Close]]) if OHLC_grouped_into_candlesticks[indexing_candlesticks, Close] >= OHLC_grouped_into_candlesticks[indexing_candlesticks, Open]: box_color, box_face_color = color_green, color_green_alpha else: box_color, box_face_color = color_red, color_red_alpha low_candlestick = Line2D(xdata=(indexing_candlesticks, indexing_candlesticks), ydata=(OHLC_grouped_into_candlesticks[indexing_candlesticks, Low], bottom_of_box), color=box_color, linewidth=1.0, antialiased=True, zorder=3) high_candlestick = Line2D(xdata=(indexing_candlesticks, indexing_candlesticks), ydata=(top_of_box, OHLC_grouped_into_candlesticks[indexing_candlesticks, High]), color=box_color, linewidth=1.0, antialiased=True, zorder=3) candlestick = FancyBboxPatch(xy=(indexing_candlesticks - off_set, bottom_of_box), width=box_width, height=np.absolute(top_of_box - bottom_of_box), facecolor=box_color, edgecolor=box_color, zorder=3, boxstyle=BoxStyle("round", pad=fancy_box_padding)) candlestick.set_alpha(candlesticks_alpha) lines.append(low_candlestick) lines.append(high_candlestick) boxes.append(candlestick) ax.add_line(low_candlestick) ax.add_line(high_candlestick) ax.add_patch(candlestick) plt.show()
2条答案
按热度按时间xuo3flqw1#
这实际上*可能是*可能的
mplfinance
,但我不完全确定。看一看the "widths" tutorial,通读整个教程,确保你理解所有变量是如何相互作用的。也就是说,根据你的问题,我猜你最感兴趣的部分(大约3/4的页面)是“手动定制蜡烛,ohlc,音量和线宽”。
查看**增加
candle_linewidth
和/或减少candle_width
**是否有帮助。您是否可以发布一个绘图示例,说明您希望蜡烛的确切外观?我不能说我曾经见过灯芯(阴影)与蜡烛主体宽度相同的烛台图表。
这就是您想要做的吗?
fruv7luv2#
下面是一个起始代码,您可以使用
box_width
、colors
等。我使variable names
变得相当明显: