Исправление границ для увеличения и уменьшения боке - PullRequest
1 голос
/ 04 июля 2019

Я борюсь с увеличением и уменьшением графика подсвечника боке.Он слишком детализируется при увеличении, и я хочу, чтобы он останавливался где-то с минимум 5-7 барами при увеличении (в зависимости от положения курсора) и возвращался к исходному графику при увеличении.out (независимо от положения курсора и возврата к исходному графику).

Я пытался поиграться с match_aspect=True и bm.DataRange1d, и я до сих пор не понимаю, как эти.

Пока что масштаб увеличивается до миллисекунд и уменьшается очень далеко, а не в соответствии с соотношением сторон исходного графика.

import pandas as pd
import bokeh.models as bm
from bokeh.io import show, output_file
from bokeh.plotting import figure
from bokeh.sampledata.stocks import MSFT

df = pd.DataFrame(MSFT)[:51]

inc = df.close > df.open
dec = df.open > df.close

p = figure( tools='xpan, xwheel_zoom', active_scroll='xwheel_zoom', 
       plot_width=1000, plot_height=500,  title = "MSFT", x_range=bm.DataRange1d(bounds='auto'),
       active_drag='xpan')
# map dataframe indices to date strings and use as label overrides
p.xaxis.major_label_overrides = {
i: date.strftime('%b %d') for i, date in 
p.xaxis.bounds = (0, df.index[-1])

p.segment(df.index, df.high, df.index, df.low, color="black")
p.vbar(df.index[inc], 0.5, df.open[inc], df.close[inc], fill_color="#D5E1DD", line_color="black")
p.vbar(df.index[dec], 0.5, df.open[dec], df.close[dec], fill_color="#F2583E", line_color="black")

show(p)

В идеале, я хотел бы получить аналогичный масштабна сайт tradingview

1 Ответ

0 голосов
/ 04 июля 2019

Диапазоны DataRange1d имеют свойства min_interval и max_interval, которые можно установить для предотвращения увеличения или уменьшения диапазона в любом случае:

p.x_range.min_interval = 1
p.x_range.max_interval = 10 
...