我正在用matplotlib绘制烛台图表。
[Q]默认设置显示通过打开-关闭框的高低条。我更希望打开的低框“高于”线,这样我只能看到高最大值(打开,关闭)和最小值(打开,关闭)-低线。有可能吗?怎么用?
我回答了我自己的问题,如果对其他人有帮助的话,我会把我的发现和最初的问题一起发布。
唯一的方法是重写candletsick()函数来绘制两条线而不是一条。我有一些样本代码,我正在使用,这样做。总是乐于听到更好的方法来做同样的事情。
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是否支持设置蜡烛的宽度以及每个蜡烛之间的间距?
谢谢。
最佳答案
我不确定间距,但是:
可以使用alpha
kwarg将框的透明度设置为candlestick
。1
应该是不透明的。
您可以使用width
kwarg设置宽度,不确定单元是什么,只需使用它们。
例如:
candlestick(ax, quotes, width=0.5, alpha=1.0)
啊,这个答案添加了中间的空数据作为增加烛台间距的技巧:
https://stackoverflow.com/a/9713447/1730674
关于python - matplotlib烛台条/框/宽度/间距,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15538668/