Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 未在web2py中显示的绘图基本表_Python_Plotly_Web2py_Plotly Dash_Plotly Python - Fatal编程技术网

Python 未在web2py中显示的绘图基本表

Python 未在web2py中显示的绘图基本表,python,plotly,web2py,plotly-dash,plotly-python,Python,Plotly,Web2py,Plotly Dash,Plotly Python,关于wep2py和plotly库,我有一个问题。我试图在web2py中显示一个基本的plotly表。我在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],

关于wep2py和plotly库,我有一个问题。我试图在web2py中显示一个基本的plotly表。我在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
根据,这应该是足够的代码来显示这个图。我确实把它放在了一个函数中,但我认为这不应该是一个问题


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

执行
返回fig.show()
会出问题。
fig.show()
在计算机上运行代码时,确实会在浏览器中打开绘图,但它返回
None
,因此无法在服务器上运行

我建议保存一个静态HTML文件,然后提供该文件,或者使用函数返回
HTML
string。我希望有帮助

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)
导入plotly.graph\u objs as go
从plotly.offline导入打印
图1=go.Figure(数据=[{'type':'bar','y':[1,3,2]}],
布局={'height':400})
图2=go.Figure(数据=[go.Table(header=dict)(值=['A得分','B得分]),
单元格=dict(值=[[100,90,80,90],[95,85,75,95]]))
div1=绘图(图1,输出类型为div,包含绘图js=False)
div2=绘图(图2,输出类型为div,包括绘图js=False)
html=”“”\
{div1}
{div2}
“”格式(div1=div1,div2=div2)
以open('multi_plot.html','w')作为f:
f、 编写(html)

Hmm,但随后图表的交互性就消失了。这对我来说是最重要的,哈哈。不过我会试试的!抱歉,你的问题中没有提到任何关于互动性的内容。你写得很清楚:“我正在尝试显示一个基本的Plotly表格”,这是正确的,因为第一步通常是让它工作。因此,如果在一些基本的例子中,它不起相应的作用,那么就没有必要用一个更难的例子来尝试它。。。下次我会更精确的!我认为拥有一个交互式Dash应用程序可以归结为在服务器上启动Dash应用程序(或让它在其他计算机上运行),然后重定向到应用程序运行的地址(同一服务器或其他计算机),最终交互通信是在客户端(浏览器)和运行“Dash服务器”的计算机之间进行的使用特定端口,如8050或smth。因此,WSGI服务器可以重定向到Dash应用程序运行的URL,并且只在似乎“为绘图服务”的开始(可选地启动Dash服务器应用程序本身)起作用。