如何使用散景从Y轴的0开始绘制图形线(Python)

wtlkbnrh  于 2022-12-10  发布在  Python
关注(0)|答案(1)|浏览(338)

我在Django/Python网站上使用散景来显示折线图。
默认情况下,图形从提供的最小值开始,但我希望它们始终从Y轴的0开始。
例如,在下面的示例中,它从Y轴的167(该数据集中的最小值)开始,但我希望从0开始。

如果我想定义最小值和最大值,y_range似乎可以很好地工作,但我只想定义最小值(0),让数据“决定”最大值。
我试过使用y_range=(0, None)min_border=0start=0和其他一些东西,但都没有成功。ChatGPT不断向我推荐一些不起作用甚至不存在的替代品。
这是我目前的代码:

y = WHATEVER
x = WHATEVER  

plot = figure(title='TITLE', 
        x_axis_type='datetime',
        sizing_mode="stretch_width", 
        max_width=600, 
        height=400)

plot.line(x, y, line_width=4)
script, div = components(plot)
yqlxgs2m

yqlxgs2m1#

若要将Y轴的最小值设置为0,可以使用Range1d函数的min_border参数,该参数用于定义Y轴上显示的值的范围。可以将此参数设置为0以确保Y轴始终从0开始。
下面是如何在代码中执行此操作的示例:

from bokeh.models import Range1d

y = WHATEVER
x = WHATEVER  

plot = figure(title='TITLE', 
        x_axis_type='datetime',
        sizing_mode="stretch_width", 
        max_width=600, 
        height=400)

# Set the y-axis range to start at 0
plot.y_range = Range1d(start=0, min_border=0)

plot.line(x, y, line_width=4)
script, div = components(plot)

或者,您也可以使用Range1d函数,使用start和end参数指定y轴上的值范围,这将允许您设置y轴的最小值和最大值。以下是如何完成此操作的示例:

from bokeh.models import Range1d

y = WHATEVER
x = WHATEVER  

plot = figure(title='TITLE', 
        x_axis_type='datetime',
        sizing_mode="stretch_width", 
        max_width=600, 
        height=400)

# Set the y-axis range to start at 0 and end at the maximum value in the data set
plot.y_range = Range1d(start=0, end=max(y))

plot.line(x, y, line_width=4)
script, div = components(plot)

在此示例中,结束参数设定为数据集中的最大值,这将确保y轴永远显示数据中的值的完整范围。请注意,如果数据中的最大值变更,您将需要相应地更新结束参数,以确保y轴永远显示值的完整范围。

相关问题