Aquí está mi código:

x_range = (0, len(df))
y_range = (df['EuPrice'].min(), df['EuPrice'].max())
def create_image(x_range, y_range, w, h):
    cvs = ds.Canvas(plot_width=w, plot_height=w//1.2)
    agg = cvs.line(df, 'fakedata', 'EuPrice')
    img = tf.shade(agg)
    return img

def base_plot(tools='pan,wheel_zoom,box_zoom,resize,reset'):
    p = bp.figure(tools=tools, plot_width=600, plot_height=300,
        x_range=x_range, y_range=y_range, outline_line_color=None,
        min_border=0, min_border_left=0, min_border_right=0,
        min_border_top=0, min_border_bottom=0)   
    p.xgrid.grid_line_color = None
    p.ygrid.grid_line_color = None
    return p

p = base_plot()
InteractiveImage(p, create_image)

El problema es que carga la trama desde el sombreador de datos a la interfaz de trama bokeh. Pero cuando hago zoom en la imagen, solo cambian los valores de los ejes, pero la imagen del gráfico vuelve al mismo punto cuando trato de hacer zoom en los datos. Se acerca un poco, pero luego vuelve a la pila completa de vista de datos.

[No hace falta decir que soy bastante nuevo en el aprendizaje de estas bibliotecas]

2
Yasir Azeem 14 ene. 2017 a las 01:01

1 respuesta

La mejor respuesta

Necesita propagar el rango x y el rango y desde Bokeh hasta el nivel del sombreador de datos:

cvs = ds.Canvas(plot_width=w, plot_height=w//1.2, x_range=x_range, y_range=y_range)

1
James A. Bednar 15 ene. 2017 a las 08:21