Python动态对象没有定义在任何地方(Plotly lib)

时间:2016-06-24 20:34:03

标签: python dynamic plot plotly

我不是python专家,但一般都知道编程。
我已经开始使用https://github.com/plotly/plotly.py/在python中进行图表了但是我发现问题1)让IDE自动完成工作和2)探索api (特别是因为1)。

我不明白的一件事是如何运作:

from plotly.graph_objs import *
traces = []
traces.append(Scatter(
    x=val.x,
    y=val.y,
    name=str(key),
    error_y=dict(
        type='data',
        array=val.err,
        visible=True,
        width=1,
        )
    ))

plotly.offline.plot(traces, filename='basic-line.html', auto_open=False)

我在https://github.com/plotly/plotly.py/blob/master/plotly/graph_objs/graph_objs.py访问了graph_objs来源,但未发现Scatter的任何内容。

Pycharm无法解析依赖关系并在其所有属性上显示错误,当然也没有弹出文档。

转到绘图函数的来源(https://github.com/plotly/plotly.py/blob/master/plotly/offline/offline.py#L314)我看到第一个参数可以是一个列表或一个dict,它被传递给tools.py,一个高达7k的行存档,带有特别感兴趣的方法:

def return_figure_from_figure_or_data(figure_or_data, validate_figure):
    from plotly.graph_objs import graph_objs
    if validate_figure:

        try:
            graph_objs.Figure(figure)

(在此处https://github.com/plotly/plotly.py/blob/master/plotly/tools.py#L1422

再次,我转到graph_objs文件试图找到图()方法或类,但没有。

虽然我不是python专家,但这不是我过去发现的东西,对我来说听起来非常不灵活。 所以问题是:

  1. 这是什么样的蟒蛇魔法?怎么称它所以我可以谷歌吗?
  2. 它在运行时如何运作?
  3. 这是一个可接受/良好的api设计吗?它是pythonic吗?
  4. 如何在没有IDE支持的情况下尝试探索这样的动态api?我也不能使用grep代码,因为“图(”似乎没有在任何地方定义。

0 个答案:

没有答案