我目前正在关注Holoviews tutorial。那里的所有东西都是用笔记本电脑完成的,并且使用了'%'句法。我从来没有使用过笔记本电脑(也不是特别想要的)。如何在普通的.py文件中写这些行?这是一个例子:
%opts Graph [width=400 height=400]
我尝试过一些事情,例如:
graph=hv.Graph.opts(width=400, height=400)
graph=hv.Graph.opts(width=[400], height=[400])
hv.Graph(width=400, height=400)
这些都抛出错误。该%语法实际上如何工作?该列表中没有逗号?我只想正常设置图表的宽度和高度。谢谢!
答案 0 :(得分:1)
Tl;博士:如果你真正感兴趣的是在jupyter笔记本环境之外使用holoviews
(就像OP那样),请参阅holoviews文档中的Outside the notebook部分。简而言之,魔术%%opts Graph [width=400 height=400]
对应于在某个g.options(width=400, height=400)
对象Graph
上调用方法g
。
如果您正在阅读此内容,因为您对jupyter
的%“魔法”感到好奇,请继续阅读。
您可以在笔记本中使用的“%”命令就是所谓的ipython“magics”。您将找到标准列表here。因此它们在普通Python中不可用,但是ipython理解%
语法并将其转换为对特定库的调用。因此,访问它们的最简单方法是使用相同的%
语法来启动,而是运行ipython
而不是python
。
您还会问%语法的工作原理。第三方软件包可以通过使用简单的装饰器将其部分功能“注册”为自定义ipython魔术:
@line_magic
def lmagic(self, line):
"my line magic"
print("Full access to the main IPython object:", self.shell)
print("Variables in the user namespace:", list(self.shell.user_ns.keys()))
return line
请参阅defining custom magics的文档中的详细信息。
最后,您当然更感兴趣的是从hv
魔法到相应的Python代码。看来你所诅咒的%%opts
魔法就是这个类的一种方法:holoviews.ipython.magics.OptsMagic
。我不使用全息视图,但似乎这样的东西可能等同于你问题中的魔法:
from holoviews.ipython.magics import OptsMagic
om = OptsMagic()
om.opts("Graph [width=400 height=400]")
请注意,您可能还需要选择图形后端,例如使用backend
关键字选项。