我正在使用Holoviews创建可视化仪表板,我想在其中创建动态树图。我试图找到文件,但我没有在官方Holoviews中找到任何TreeMaps的文档。 然后我使用Squarify库来绘制TreeMaps,但我遇到的唯一问题是,我无法在服务器上部署这些树图。当我启动服务器时,弹出错误消息。
File "C:\Users\Nisarg.Bhatt\WinPython\python-3.6.5.amd64\lib\site-
packages\holoviews\plotting\util.py", line 236, in initialize_dynamic
dmaps = obj.traverse(lambda x: x, specs=[DynamicMap])
AttributeError: 'AxesSubplot' object has no attribute 'traverse'
TreeMap的代码:
cmap = matplotlib.cm.Blues
mini=min(data["Quarter"])
maxi=max(data["Quarter"])
norm = matplotlib.colors.Normalize(vmin=mini, vmax=maxi)
#colors = [cmap(norm(value)) for value in data]
data1=data[0:1]
labels = [(label) for label in zip(data.Quarter,data.Company)]
fig = plt.figure(figsize=(20, 10))
plots=squarify.plot(sizes=data["month"],label= labels, color=
["red","blue","green"],alpha=.8)
new_plot= renderer.app(plots)
执行此操作时,TreeMaps将在Jupyter NoteBook中创建。
QUERY: 1.有没有其他方法可以使用像hv.Curve或hv.Bars这样的全息视图来绘制TreeMap
先谢谢。 问候, Nisarg
答案 0 :(得分:0)
使用较低层的库作为bokeh(兼容Holoviews),您可以像squarify一样绘制矩形。
答案 1 :(得分:0)
#plotting TreeMap using squarify.plot
data = [8,3,4,2]
df = pd.DataFrame(data, columns=['nb_people'])
label=df.groupby(pd.cut(df["nb_people"], np.array([0,2,5,np.inf]),include_lowest=True,labels=['Group A','Group B','Group C'])).groups
squarify.plot(sizes=df['nb_people'], label=label, alpha=1)
plt.show()