我试图绘制Seaborn热图图表并使用Bokeh输出。
以下是我绘制图表的方式:
In [1]: import pandas as pd
...: import seaborn as sns
...:
...: df = pd.DataFrame([['item1',1,2,3,4,'SEPT'],
...: ['item2',5,6,7,8,'OCT'],
...: ['item3',9,10,11,12,'SEPT'],
...: ['item1',13,14,15,16,'OCT'],
...: ['item2',17,18,19,20,'SEPT'],
...: ['item3',21,22,23,24,'OCT']],
...: columns = ['itemName','metric1',
...: 'metric2','metric3','metric4','Month'])
...: df
Out[1]:
itemName metric1 metric2 metric3 metric4 Month
0 item1 1 2 3 4 SEPT
1 item2 5 6 7 8 OCT
2 item3 9 10 11 12 SEPT
3 item1 13 14 15 16 OCT
4 item2 17 18 19 20 SEPT
5 item3 21 22 23 24 OCT
In [2]: df1 = df.pivot(index='itemName',columns='Month',values='metric1')
...:
...: df1
Out[2]:
Month OCT SEPT
itemName
item1 13 1
item2 5 17
item3 21 9
In [3]: sns.heatmap(df1, annot=True)
Out[3]: <matplotlib.axes._subplots.AxesSubplot at 0x2a3836cc2b0>
到目前为止,这么好。然后我尝试使用Bokeh输出图表,使用example作为基础:
In [4]: from bokeh import mpl
...: from bokeh.plotting import output_file, show
In [5]: output_file("seaborn_heatmap.html", title="seaborn heatmap example")
In [6]: show(mpl.to_bokeh())
WARNING:C:\Users\<Username>\Anaconda3\lib\site-packages\bokeh\core\validation\check.py:W-1001 (NO_DATA_RENDERERS): Plot has no data renderers: Plot, ViewModel:Plot, ref _id: b78fd176-bffd-4fd0-9b7c-a169d299f541
这会产生一个空图表。我做错了什么?
P.S。使用Bokeh的原因是我想使用下拉列表或类似的东西在动态热映射的不同值源之间切换。但是,我对所使用的任何库都没有太深入的投入,所以如果你能建议一个可以更轻松地进行交互式热图的免费替代方案,我很乐意调查它。
答案 0 :(得分:0)
您所要求的内容不受支持,并且不存在。 Bokeh或Matplotlib中没有将Matplotlib输出转换为Bokeh输出的功能部件。因此,此问题的答案是:
您要的是不可能的。
(作为Bokeh的共同创建者和首席维护者长达5年以上),对于用户来说,清楚明确地知道没有将MPL转换为Bokeh的“魔术子弹”非常重要。 错误信息 。
生成散景输出的唯一选择是直接使用本机散景API,例如bokeh.plotting
API。