相关文章推荐
从未表白的脆皮肠  ·  python ...·  3 周前    · 
小眼睛的火龙果  ·  mongodb find ...·  1 年前    · 
风度翩翩的充值卡  ·  iOS ...·  1 年前    · 
慷慨的烤面包  ·  Python ...·  1 年前    · 

如何在Databricks上使用HoloViews / hvPlot

2 人关注

我怎样才能让HoloViews绘图或Hvplot在Databricks上工作?
生成的情节也应保持所有的互动性。

python
databricks
holoviews
hvplot
Sander van den Oord
Sander van den Oord
发布于 2020-04-24
3 个回答
Douglas M
Douglas M
发布于 2021-04-20
已采纳
0 人赞同

Bokeh file_html 将返回HTML+JS代码以提供你的数据的交互式绘图。总的HTML必须小于20MB。你的数据需要内联到你的HTML中,否则你可能会遇到CSRF错误。确保你已经安装了python holoviews bokeh hvplot 软件包。例子。

import math
import numpy as np
import pandas as pd
import holoviews as hv
from bokeh.embed import components, file_html
from bokeh.resources import CDN
hv.extension('bokeh')
import hvplot
renderer = hv.renderer('bokeh').instance(fig='html', holomap='auto')
# see https://github.com/ioam/holoviews/issues/1819
def displayHoloviews(hv_plot, html_name="plot.html", width=1000, height=600, renderer=renderer):
  plot = renderer.get_plot(hv_plot).state
  setattr(plot, 'plot_width', width)
  setattr(plot, 'plot_height', height)
  displayHTML(file_html(plot, CDN, html_name))
index = pd.date_range('1/1/2000', periods=1000)
df = pd.DataFrame(np.random.randn(1000, 4), index=index, columns=list('ABCD')).cumsum()
displayHoloviews(hvplot.hvPlot(df).line(y=['A','B','C','D']))

四条随机行走线的绘制和互动

Sander van den Oord
Sander van den Oord
发布于 2021-04-20
0 人赞同

你可以 将你的HoloViews绘图保存为一个HTML文件,然后使用displayHTML()。 .
解决方案是受到这个博客的启发。
https://anitagraser.com/2020/02/02/first-working-movingpandas-setup-on-databricks/

这种方法的缺点是,你的html文件不应该变得太大,否则你可能会遇到保存笔记本的问题。

这里有一个 工作实例 :

# import libraries
import numpy as np
import pandas as pd
import holoviews as hv
import hvplot.pandas
# create sample date
df = pd.DataFrame(np.random.rand(50, 2), columns=['col1', 'col2'])
df['col3'] = np.random.randint(0, 2, 50)
# create holoviews scatter plot
hv_scatter = df.hvplot(kind='scatter', x='col1', y='col2', groupby='col3')
# save scatter plot as html
hv.save(hv_scatter, 'hv_scatter.html')
# assign html file to variable
with open('hv_scatter.html', 'r') as html_file:
  html_scatter = html_file.read()
# display scatter plot
displayHTML(html_scatter)
作为一个替代方案,你也可以将你的情节渲染成Bokeh情节,然后使用这个笔记本的例子。
https://docs.databricks.com/notebooks/visualizations/bokeh.html

Skippy le Grand Gourou
Skippy le Grand Gourou
发布于 2021-04-20
0 人赞同

你可以简单地使用

import holoviews as hv
your_plot = hv.Points(np.random.multivariate_normal((0,0), [[0.1, 0.1], [0.1, 1.0]], (1000,)))