Python HoloView:从组合条形图的x轴上删除变量名称

Python HoloView:从组合条形图的x轴上删除变量名称,python,bar-chart,bokeh,holoviews,hvplot,Python,Bar Chart,Bokeh,Holoviews,Hvplot,关于HoloViews分组(无标记)条形图的快速问题。如何删除x轴变量名称标记,但将其包含在图例中 请参见下面的示例: 我想做以下工作: 对于红色框,删除记号“x”和“y”的名称 为“x”和“y”添加与各自颜色对齐的图例 代码如下: import pandas as pd import numpy as np import matplotlib.pyplot as plt import matplotlib import holoviews as hv pd.options.plotting.

关于HoloViews分组(无标记)条形图的快速问题。如何删除x轴变量名称标记,但将其包含在图例中

请参见下面的示例:

我想做以下工作:

  • 对于红色框,删除记号“x”和“y”的名称
  • 为“x”和“y”添加与各自颜色对齐的图例 代码如下:

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib
    import holoviews as hv
    pd.options.plotting.backend = 'holoviews'
    
    df1 = pd.DataFrame({
        'x': np.random.rand(10), 
        'y': np.random.rand(10),
    })
    
    my_plot = df1.plot(kind='bar')
    my_plot
    

    谢谢大家!

    据我搜索,熊猫全息图(bokeh)并没有提供你想要的样式。条形图没有图例,组图在x标签中有名称

    相反,使用matplotlib作为后端很容易

    import pandas as pd
    import numpy as np
    
    pd.options.plotting.backend = 'matplotlib'
    
    df1 = pd.DataFrame({
                        'x': np.random.rand(10), 
                        'y': np.random.rand(10)
                        })
    
    Plot = df1.plot(kind = 'bar', rot=0)
    Plot
    


    如果编辑Bokeh目录,它将提供问题1:从分组条形图中删除XTick:

    通常,您可以执行
    您的_plot.opts(xticks=[(None)])
    来删除xticks,但不幸的是,这对于分组条形图是不可能的。

    解决方案1:将绘图渲染为Bokeh绘图,然后删除XTick:

    from bokeh.plotting import show
    
    # create holoviews plot
    my_holoviews_plot = df1.plot(kind='bar')
    
    # render holoviews plot to bokeh plot
    my_bokeh_plot = hv.render(my_holoviews_plot, backend='bokeh')
    
    # apply changes to bokeh plot
    my_bokeh_plot.xaxis.major_label_text_font_size = '0pt'
    
    # visualize plot
    show(my_bokeh_plot)
    


    问题2:向分组条形图添加图例:
    仍然在寻找这个问题的答案。我认为,使用Bokeh也可以做到这一点。
    请参见我的问题:


    (我的心意是:在jupyter中,按my_bokeh_plot.之后的tab键可以很好地了解my_bokeh_plot的许多属性,但另一个好方法是运行
    my_bokeh_plot.properties_with_values()
    以获得更难的属性)。

    在分组条形图上
    这将删除次要分类变量的x记号,并将图例添加到分组条形图中。

    但是,您需要HoloViews>=1.13才能执行此操作。
    在我写这篇文章时,这个版本还不可用,但您可以通过以下方式安装它:

    pip安装git+


    代码示例:

    import numpy as np
    import pandas as pd
    import holoviews as hv
    pd.options.plotting.backend = 'holoviews'
    
    df1 = pd.DataFrame({
        'x': np.random.rand(10), 
        'y': np.random.rand(10),
    })
    
    my_grouped_barplot = df1.plot(kind='bar')
    
    # remove the 2nd categorical level with multi_level=False
    # this will remove your x-ticks and add a legend
    my_grouped_barplot.opts(multi_level=False)
    

    结果图:

    from bokeh.plotting import show
    
    # create holoviews plot
    my_holoviews_plot = df1.plot(kind='bar')
    
    # render holoviews plot to bokeh plot
    my_bokeh_plot = hv.render(my_holoviews_plot, backend='bokeh')
    
    # apply changes to bokeh plot
    my_bokeh_plot.xaxis.major_label_text_font_size = '0pt'
    
    # visualize plot
    show(my_bokeh_plot)