我的数据集很简单:
我正在使用python hvplot通过简单地给出“ col”语句来绘制子图”
bar = df.hvplot.bar('month', 'volume', col = 'product', \
height = 200, width = 200, rot=90, logy = True, grid = True)
情节看起来像这样:
我想隐藏绘图标题区域(带圆圈的虚线部分)或将其移至绘图底部。我搜索了互联网,但没有发现太多线索。感谢有人可以帮助我。
另一个问题,如何按产品名称指定条形填充颜色? hvplot似乎不支持cmap。
答案 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')