ローソク足チャートを描画するためにmatplotlibを使用しています。
[Q] デフォルト設定では、開閉ボックスを通過する高低バーが表示されます。オープンローボックスをラインの「上」に配置して、high-max(open,close) と min(open,close)-low のみをラインとして表示することをお勧めします。それは可能ですか?どのように?
私は自分の質問に答えて、他の人に役立つ場合は元の質問で私の発見を投稿しています。
これを行う唯一の方法は、candletsick() 関数を書き直して、1 本ではなく 2 本の線を描画することです。これを行うために使用しているサンプルコードがいくつかあります。同じことを行うためのより良い方法を聞くことは常に幸せです.
def fooCandlestick(ax, quotes, width=0.5, colorup='k', colordown='r',
alpha=1.0):
OFFSET = width/2.0
lines = []
boxes = []
for q in quotes:
t, op, cl, hi, lo = q[:5]
box_h = max(op, cl)
box_l = min(op, cl)
height = box_h - box_l
if cl>=op:
color = colorup
else:
color = colordown
vline_lo = Line2D(
xdata=(t, t), ydata=(lo, box_l),
color = 'k',
linewidth=0.5,
antialiased=True,
)
vline_hi = Line2D(
xdata=(t, t), ydata=(box_h, hi),
color = 'k',
linewidth=0.5,
antialiased=True,
)
rect = Rectangle(
xy = (t-OFFSET, box_l),
width = width,
height = height,
facecolor = color,
edgecolor = color,
)
rect.set_alpha(alpha)
lines.append(vline_lo)
lines.append(vline_hi)
boxes.append(rect)
ax.add_line(vline_lo)
ax.add_line(vline_hi)
ax.add_patch(rect)
ax.autoscale_view()
return lines, boxes
[Q] matplotlib はローソク足の幅と各ローソク足間の間隔の設定をサポートしていますか?
ありがとう。