You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Holoviews中全局设置show_grid=True选项?

全局开启Holoviews图表的网格显示(Bokeh后端)

当然可以全局开启show_grid=True,无需为每个图表单独设置,主要有两种高效方式:

方式1:指定特定图表类型

如果只需要给Curve、Scatter等几个特定类型开启网格,直接用hv.opts.defaults()逐个配置:

import holoviews as hv
hv.extension('bokeh')

# 设置全局默认选项
hv.opts.defaults(
    hv.opts.Curve(show_grid=True, width=600, height=400),
    hv.opts.Scatter(show_grid=True, width=600, height=400),
    # 按需添加其他类型,比如Area、Bar等
)

# 测试示例
x = [1,2,3,4]
y = [2,4,6,8]
# 创建的Curve和Scatter会自动应用全局网格设置
curve = hv.Curve((x,y), xlabel='time in sec', ylabel='volts', title='My Curve')
scatter = hv.Scatter((x,y), xlabel='time in sec', ylabel='volts', title='My Scatter')

hv.Layout(curve + scatter).cols(2)

方式2:批量覆盖所有XY类图表

Curve、Scatter等绝大多数常见的XY图表都继承自Chart类,直接给Chart设置全局选项,就能一次性覆盖所有子类:

import holoviews as hv
hv.extension('bokeh')

# 全局开启所有Chart子类的网格显示
hv.opts.defaults(
    hv.opts.Chart(show_grid=True, width=600, height=400)
)

# 测试示例
x = [1,2,3,4]
y = [2,4,6,8]
curve = hv.Curve((x,y), xlabel='time in sec', ylabel='volts', title='My Curve')
scatter = hv.Scatter((x,y), xlabel='time in sec', ylabel='volts', title='My Scatter')
area = hv.Area((x,y), xlabel='time in sec', ylabel='volts', title='My Area')

# Curve、Scatter、Area都会自动显示网格
hv.Layout(curve + scatter + area).cols(3)

注意事项

  • 全局设置必须在创建图表之前执行,否则不会对已创建的图表生效。
  • 如果某个图表需要单独关闭网格,只需在该图表的options()方法中设置show_grid=False,即可覆盖全局配置:
    # 单独关闭某个图表的网格
    curve.options(show_grid=False)
    

内容的提问来源于stack exchange,提问作者Hitesh Rahangdale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 13:30:54