无法通过Python使用BOKEH + HOLOVIEW绘图选项设置散景绘图参数

时间:2016-08-19 06:17:00

标签: plot backend bokeh curve holoviews

是否有任何文档指定如何通过holoview传递Bokeh参数? 我正在阅读教程,但我认为我错过了一些小事。 有一个在线的例子在Ipython中描述了这个,但我试图通过一个没有Ipython笔记本的python来做。 http://holoviews.org/Tutorials/Bokeh_Backend.html?highlight=bokeh

当我运行这个程序时,我得到曲线,但颜色没有变化,我也得到这个错误:警告:root:Curve01537:使​​用机制设置非参数属性style = {'line_color':'green'}仅用于参数

我们如何设置参数?

    Code Example here
    from pprint import pprint, pformat
    import holoviews as hv
    import numpy as np
    import pathlib, os
    import webbrowser
    import lasio, las
    from holoviews import Store
    from holoviews.plotting.bokeh.element import (line_properties, fill_properties, text_properties)

   def plot_bokeh(plot):

       #Create renderer instance
       myrenderer = hv.Store.renderers['bokeh'].instance(fig='html')
       out_file_name = "".join(["./OUTPUT/","gyro", "_graph.html"])
       with open (out_file_name, 'w') as f:
       #Plot static html
           f.write (myrenderer.static_html(plot))
       f.close()
                     webbrowser.open_new_tab(pathlib.Path(os.path.abspath(out_file_name)).as_uri())


    def holoview_sandbox():


      curve_opts = dict(line_color='green')
      xs = np.linspace(0, np.pi*4, 100)
      data = (xs, np.sin(xs))


      holo_plot = hv.Curve(data, label='MY LABEL' , style=curve_opts) 
      plot_bokeh(holo_plot)

    if __name__ == '__main__':
        holoview_sandbox()

2 个答案:

答案 0 :(得分:1)

在HoloViews中,选项不受对象本身的约束,这具有各种好处,包括能够使用不同的后端进行绘图。设置样式选项的纯Python方式是:

  curve_opts = dict(line_color='green')
  xs = np.linspace(0, np.pi*4, 100)
  data = (xs, np.sin(xs))
  holo_plot = hv.Curve(data, label='MY LABEL')(style=curve_opts)

Options Tutorial介绍了如何设置此类选项,但如果您发现其中一些不清楚,请告诉我们。

答案 1 :(得分:0)

此语法也很好

  

holo_plot.opts(style = {'color':'green'})

当您在Philipp的dict()中将条目“ line_color”更改为“ color”时,这也适用于matplotlib后端。

除了Philipp的链接之外,还可以在here中找到有关设置选项的详细信息。