问题描述
我构建了以下图形生成器,将点图导出到“scatter.html”:
import sys
import csv
import webbrowser
import pandas as pd
import holoviews as hv
from holoviews import opts
hv.extension("bokeh","matplotlib")
SOURCE_FILE = "..\..\..\Assets\\task_log.csv"
df = pd.read_csv(SOURCE_FILE,quoting=csv.QUOTE_ALL)
df["DATE"] = df["TIME"].str[:10]
key_dimensions = [("DATE","Date"),("HOST PROGRAM","Host Program")]
value_dimensions = [("STATUS","Status"),("WORKING DIRECTORY")]
scatter_plot = hv.Points(df,key_dimensions,value_dimensions,label = "Script Overview")
scatter_plot.opts(size=8,cmap="prism_r",color="Status",width=900,xrotation=90,legend_position="bottom_left")
hv.save(scatter_plot,"scatter.html",backend="bokeh")
我想创建另一个 hv.Points() 对象并将其保存到同一个输出文件“scatter.html”。有没有办法在没有 Jupyter notebook 的情况下显示多个图?
解决方法
在 HoloViews 中组合两个图的一种方法是创建布局。
然后您将该组合图写入您的 html 文件。
关于 hv.Layout()
的文档:
http://holoviews.org/reference/containers/bokeh/Layout.html#containers-bokeh-gallery-layout
您可以简单地使用 +
符号来组合 2 个图。您的代码将如下所示:
plot1 = hv.Points(df,key_dimensions,value_dimensions,label = "Script Overview")
plot2 = hv.Points(df,label = "Other plot")
combined_plot = plot1 + plot2
hv.save(combined_plot,"scatter.html",backend="bokeh")