在web2py中未显示基本表

时间:2019-11-20 16:05:52

标签: python plotly web2py plotly-dash plotly-python

我有一个关于wep2py和plotly库的问题。我正在尝试在web2py中显示一个基本的绘图表。我已经在我的python控制器中使用plotly库制作了表格:

def test_table():
    fig = go.Figure(data=[go.Table(header=dict(values=['A Scores', 'B Scores']),
                                   cells=dict(values=[[100, 90, 80, 90], [95, 85, 75, 95]]))
                          ])
    return fig.show()
    # fig.show() gives the same result

根据plotly docs,此代码应足以显示该图。我确实将其放在函数中,但我认为应该没有问题。

但是,当我使用参数将此函数传递给前端时,我的浏览器尝试打开一个新选项卡,并且运行web2py的选项卡上的结果仅显示为“ None”。

1 个答案:

答案 0 :(得分:0)

执行return fig.show()会出现问题。fig.show()确实在计算机上运行代码时在浏览器中打开了一个图,但它返回了None,因此在服务器上不起作用。

我建议保存一个静态HTML文件,然后可以提供该文件或让您的函数返回html字符串。希望对您有帮助

import plotly.graph_objs as go
from plotly.offline import plot

fig1 = go.Figure(data=[{'type': 'bar', 'y': [1, 3, 2]}],
                        layout={'height': 400})

fig2 = go.Figure(data = [go.Table(header=dict(values=['A Scores', 'B Scores']),
                                  cells=dict(values=[[100, 90, 80, 90], [95, 85, 75, 95]]))])

div1 = plot(fig1, output_type='div', include_plotlyjs=False)
div2 = plot(fig2, output_type='div', include_plotlyjs=False)

html = """\
<html>
    <head>
        <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
    </head>
    <body>
        {div1}
        {div2}
    </body>
</html>
""".format(div1=div1, div2=div2)

with open('multi_plot.html', 'w') as f:
    f.write(html)

enter image description here