如何在Python Jupyter笔记本中绘图?

6
我最终想能够在其他图像的上方绘制,并保存绘图数据以供以后查看。
我尝试使用matplotlib进行操作。如此处描述的那样,我已经将其功能实现得相当好了,但遇到了很多问题,因为我不能在另一个窗口中打开它,而且当它以内联方式显示时,回调事件不会正确触发。
我正在连接到远程jupyter服务器,所以我认为一切都需要内联处理。我读了一些关于bokeh的东西,它似乎可能很有用,但我不知道从哪里开始。
这似乎很容易使用javascript完成,但我无法弄清楚如何在jupyter中运行javascript。至少不是超过一两行的情况。
1个回答

0

我认为使用bokeh你已经走在了正确的轨道上。 对于科学可视化,像holoviews这样的图形库非常有名,因为它们在高抽象级别上工作,并允许创建交互式图表。 要在现有图中绘制,基本上应该是这样:

import holoviews as hv
hv.extension('bokeh')
from holoviews import opts
from bokeh.plotting import show, output_file

Curve_opts = {'width':700, 'height':400, 'bgcolor':'#FFFFFF', 
       'tools':TOOLS, 'line_width':1.2,}

plot = hv.Curve(data=df, kdims=['col_x','col_y'], vdims=['value_in_tag'], label='legend 1')\
     * hv.Scatter(data=df, kdims=['col_x','col_y'], vdims=['col_color'], label='legend 2')   
# with '*' you plot into the same frame of a layout 

plot = plot.relabel("Diagram Title")

plot.opts(opts.Curve(**Curve_opts ))        # provide a dict to customize output
hv.save(plot, 'Filename.png', fmt='png')    # save as png to be used in an article
output_file('Filename.html')                # interactive diagram for web-publishing
show(hv.render(plot))                       # workaround as spyder doesn't render hv 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接