首页 > 解决方案 > 散景。如何匹配多个y轴的比例?

问题描述

我想绘制一个具有相同比例的多个 y 轴的折线图。例如,我绘制了一个图形,左侧有一个主 y 轴,右侧有三个辅助 y 轴,比例不同:在此处输入图像描述

有没有办法使辅助 y 轴具有与主 y 轴相同的比例?我想我应该做点什么Range1d,但我不确定......

以下是我的代码;

# figure size
p = figure(width=900, height=300)

# primary axis
p.line(x='date_time', y='t1_posX', source=df_trial, line_width=2, color="blue")
p.y_range = Range1d(df_trial['t1_posX'].min(), df_trial['t1_posX'].max())

# secondary axes
p.extra_y_ranges = {
    "t1_posZ": Range1d(
        start=df_trial['t1_posZ'].min(), 
        end=df_trial['t1_posZ'].max()
    ),
    "t2_posX": Range1d(
        start=df_trial['t2_posX'].min(), 
        end=df_trial['t2_posX'].max()
    ),
    "t2_posZ": Range1d(
        start=df_trial['t2_posZ'].min(), 
        end=df_trial['t2_posZ'].max()
    )
}

# add the secondary axes to the primary axis
p.add_layout(LinearAxis(y_range_name='t1_posZ'), "right")
p.add_layout(LinearAxis(y_range_name='t2_posX'), "right")
p.add_layout(LinearAxis(y_range_name='t2_posZ'), "right")

# plot the data
p.line(x='date_time', y='t1_posZ', source=df_trial, line_width=2, y_range_name='t1_posZ', color="red")
p.line(x='date_time', y='t2_posX', source=df_trial, line_width=2, y_range_name='t2_posX', color="green")
p.line(x='date_time', y='t2_posZ', source=df_trial, line_width=2, y_range_name='t2_posZ', color="pink")

# format the timestamp on the x-axis 
p.xaxis.formatter=DatetimeTickFormatter(
    microseconds = ['%H:%M:%S.%f'],
    milliseconds = ['%H:%M:%S.%3N'],
    seconds = ["%H:%M:%S"],
    minsec = ["%H:%M:%S"],
    minutes = ["%H:%M:%S"],
    hourmin = ["%H:%M:%S"],
    hours=["%H:%M:%S"]
)

show(p)

标签: pythonbokeh

解决方案


推荐阅读