如何隐藏或设置hvplot子图标题的位置

时间:2019-03-04 01:59:53

标签: python-3.x plot

我的数据集很简单:

Product volume by month

我正在使用python hvplot通过简单地给出“ col”语句来绘制子图”

    bar = df.hvplot.bar('month', 'volume', col = 'product', \
height = 200, width = 200, rot=90, logy = True, grid = True)

情节看起来像这样:

sample plot

我想隐藏绘图标题区域(带圆圈的虚线部分)或将其移至绘图底部。我搜索了互联网,但没有发现太多线索。感谢有人可以帮助我。

另一个问题,如何按产品名称指定条形填充颜色? hvplot似乎不支持cmap。

2 个答案:

答案 0 :(得分:0)

首先,欢迎来到Stackoverflow!为了将来,请提供所谓的MWE:https://stackoverflow.com/help/minimal-reproducible-example

简短回答:

df.hvplot.bar('x', 'y', row='z').opts(xaxis=False)

将删除您所谓的“标题”。

长答案:

hvplot返回Holoviews对象,请参见

import holoviews as hv

某些(如果不是大多数)自定义选项只能通过Holoviews本身直接访问。在这种情况下,由于您提供了col参数,因此可以为您提供完整视图GridSpace,请参见此处:http://holoviews.org/reference/containers/matplotlib/GridSpace.html

因此,您所谓的“子图标题”实际上就是GridSpace的轴!这就是您通过xaxis=False调用关闭的功能。

您可以通过

获得有关可用选项的内联帮助
hv.help(hv.GridSpace)

答案 1 :(得分:0)

有很多方法可以将产品标签移至Barplot中:

# import libraries
import pandas as pd
import holoviews as hv
import hvplot
import hvplot.pandas

# create example dataframe 
df = pd.DataFrame({
    'product': ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c'],
    'month': ['201801', '201802', '201803', '201801', '201802', '201803',  '201801', '201802', '201803'],
    'volume': [100, 125, 110, 85, 87, 96, 177, 167, 130]
})

可能的解决方案:

# create barplot option 1
df.hvplot.bar(x=['product', 'month'], y='volume')

# or do it like this
df.hvplot.bar(x='product', y='volume', by='month')

# or create your barplot like this
hv.Dataset(df).to.bars(['product', 'month'], 'volume')

这将导致以下绘图: barplot labels down