Python HoloView:从组合条形图的x轴上删除变量名称
关于HoloViews分组(无标记)条形图的快速问题。如何删除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.
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)