使用datashade / holoviews / Bokeh创建子图的一般符号是使用'+'符号:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
但是,我试图像在Matplotlib中一样在for循环中生成图。在Seaborn中,我可以执行以下操作来创建子图,同时增加数据框的大小:
plot = plot1 + plot2 + plot3
如何将我下面用于Datashade / Holoviews的方法转换为更自动化的过程?
fig, axes = plt.subplots(nrows=len(DF_cols), ncols=1, figsize=(10,10), sharex = True)
count = 0
for i in DF_cols:
sns.lineplot(data=df[i], label=i, ax=axes[count])
count += 1
return fig, axes
我最初的方法是使用创建自定义字符串来模仿常规的Datashade表示法并在其上运行exec(),但这在使用内部函数时不起作用,否则最终会遇到其他错误。
答案 0 :(得分:1)
您可以通过将元素列表传递给hv.Layout
来以编程方式创建布局。在这种情况下,以下几行应该可以解决问题:
hv.Layout([plot1, plot2, plot3, plot4]).cols(1)