1

我的数据集很简单:

每月产品数量

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

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

情节如下所示:

样本图

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

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

4

2 回答 2

1

首先,欢迎来到 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参数,因此它为您提供了 holoviews GridSpace,请参见此处:http ://holoviews.org/reference/containers/matplotlib/GridSpace.html

所以你所说的“子图标题”实际上是你的 GridSpace 的轴!xaxis=False这就是您使用呼叫关闭的内容。

您可以通过以下方式获得有关可用选项的内联帮助

hv.help(hv.GridSpace)
于 2019-06-07T02:32:32.470 回答
0

有很多方法可以在条形图中将产品标签下移:

# 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')

这将导致以下情节: 条形图标签向下

于 2019-09-07T20:42:23.917 回答