如何单独隐藏/删除轴而不删除全息视图中的轴标签

问题描述

当我添加... .opts(title="Graph",ylabel="Count",width=400,axiswise=True,xaxis='bare')xasis='bare'xaxis=none可使整个轴与holoviews中的标签一起消失。如何显示axis标签时仅移除轴? 当轴反转时,此处的标签ylabelylabelxaxis设置标签

有关示例图形代码,请参考here

还有一种方法可以为并排图提供主标题,以及在全息视图中显示各个图标题

解决方法

为此,您需要深入了解bokeh。您可以使用挂钩或渲染bokeh对象并直接对其进行操作:

挂钩方法:

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

def hook(plot,element):
    plot.state.xaxis.major_tick_line_color = None        # turn off x-axis major ticks
    plot.state.xaxis.minor_tick_line_color = None        # turn off x-axis minor ticks
    plot.state.xaxis.major_label_text_font_size = '0pt'  # turn off x-axis tick labels


df = pd.DataFrame({
    "set": list("ABABCCAD"),"flag": list("YYNNNYNY"),"id": list("DEFGHIJK"),})

df = df.groupby(["set","flag"])["id"].count().reset_index()
count_bars = hv.Bars(df,kdims=["set","flag"],vdims="id")

plot = (count_bars
        .opts(hooks=[hook],title="IDs",invert_axes=True,width=500,padding=2)
        .redim.values(flag=["Y","N"]) # Inverting the axes flips this order. This produces N,Y vertically
        .sort("set",reverse=True)
       )

渲染bokeh对象并使用它:

from bokeh.io import show
import holoviews as hv
hv.extension("bokeh")
    
df = pd.DataFrame({
    "set": list("ABABCCAD"),vdims="id")

plot = (count_bars
        .opts(title="IDs",reverse=True)
       )

bokeh_figure = hv.render(plot)
bokeh_figure.xaxis.major_tick_line_color = None        # turn off x-axis major ticks
bokeh_figure.xaxis.minor_tick_line_color = None        # turn off x-axis minor ticks
bokeh_figure.xaxis.major_label_text_font_size = '0pt'  # turn off x-axis tick labels

show(bokeh_figure)

这两种方法都会产生以下图: enter image description here