我正在拼命地将一个正在运行的散景小程序嵌入到烧瓶中,并且找不到合适的方法来执行此操作.我查看了所有示例,但我找不到一个包含更新数据的能力(最好的例子:sliders_applet).
如果我没弄错的话,我确实需要散景服务器才能更改数据(使用滑块等).以这种方式启动applet,例如:
bokeh-server --script sliders_app.py
Run Code Online (Sandbox Code Playgroud)
但我找不到合适的,或者至少是一种将sliders_app嵌入烧瓶的工作方式.由于应该可以使用多个applet,因此在散景服务器启动时指定一个小程序似乎并不干净.
我很乐意感谢任何帮助 - 散景看起来对我来说是一个很棒的工具.
我经常向我的网页发送一个巨大的JSON字符串(在Flask中使用jsonify),所以我想减少数据.最简单的选择可能是删除所有换行符和空格字符,但只是给你一个例子:
普通jsonify:361KB
删除所有换行符和空格字符:118KB(哇).
压缩原始文件:35KB(双哇).
所以我基本上想知道是否有一种简单的方法来接近35KB.到目前为止我找不到一个解决方案,我可以在python和javascript(解压缩)中轻松实现.
现在,我每秒发送大约4-5MB的数据,这是 - 你猜对了 - 一点点"太多".
我的会话 cookie 遇到了奇怪的行为:在我的 Mac 上运行 Flask 应用程序,一切正常,并且在任何浏览器上都设置了 cookie。
但是,如果我在 Windows 服务器上运行它,会话 cookie 不会在 Safari(和 iOS)上设置 - 但仍然适用于任何其他浏览器。怎么会发生这种事呢?这是一个简单应用程序的示例:
import os
import uuid
from flask import Flask, render_template, session
app = Flask(__name__)
SESSION_LIFETIME = 3600
@app.before_request
def before_request():
# create session
if not session.get('uid'):
session.permanent = True
session['uid'] = uuid.uuid4()
@app.route('/', methods=['GET'])
def test():
return render_template('test.html')
if __name__ == "__main__":
app.secret_key = os.urandom(24)
app.permanent_session_lifetime = SESSION_LIFETIME
app.debug = True
app.run(threaded=True,
host="0.0.0.0",
port=int("5000")
)
Run Code Online (Sandbox Code Playgroud)
以 test.html 为例:
<!DOCTYPE html>
<html>
<head lang="en">
<meta …Run Code Online (Sandbox Code Playgroud) 我想从普通数组创建一个 Numpy 数组并将nan值转换为None- 但成功取决于天气,第一个值是“普通”浮点数,还是float('nan').
这是我的代码,从初始数组开始:
print(a)
array('d', [3.2345, nan, 2.0, 3.2, 1.0, 3.0])
print(b)
array('d', [nan, nan, 2.0, 3.2, 1.0, 3.0])
Run Code Online (Sandbox Code Playgroud)
现在我想通过向量化函数将所有nan值交换到 Python :None
def convert(x):
if x != x:
return None
else:
return x
convert_vec = numpy.vectorize(convert)
Run Code Online (Sandbox Code Playgroud)
很简单,但会导致两种不同的结果:
numpy.asarray(convert_vec(a))
array([[ 3.2345, 2. , 1. ], [ nan, 3.2 , 3. ]])
numpy.asarray(convert_vec(b))
array([[None, 2.0, 1.0], [None, 3.2, 3.0]], dtype=object)
Run Code Online (Sandbox Code Playgroud)
为什么是这样?是的,我可以看到一个小小的差异 - 第二个有objectas dtype。但使用numpy.asarray(convert_vec(a), dtype=object)固定它 - …
我正在寻找各种方法来加速 JavaScript 中绘图的渲染,也许我们可以在这里收集一些东西?
我正在绘制科学数据,每条迹线大约有 500 个点 + 错误(通常在 1 到 4 条迹线之间)。听起来不太夸张,不是吗?现在数据根据用户输入(滑块)而变化,我的目标是在拖动滑块时尽可能平滑地更新绘图。这就是我意识到我对绘图速度不满意的地方。
由于 y 数据(+错误)可以完全改变,所以我使用Plotly.redraw- 在我的 Chrome 上,这需要大约 30-40 毫秒。看起来还可以,但考虑到我想同时呈现 5-15 个图,这通常会花费半秒或更长的时间。1 或 2 fps 并不完全是所谓的“流畅”。另外,这是在 Chrome 上,在其他浏览器上看起来更糟。
所以我想知道重绘是否是唯一的选择,如果是,如何加快速度?有任何想法吗?我尝试过type: 'scattergl',虽然这似乎是一个很大的提升(低至 10-15 毫秒),但它只对只有一条迹线的小地块起作用,我无法设法让它适用于所有 10-15 块地块 -它会抛出多个不同的错误,不值得一提,因为它们在不同的机器上总是不同的。所以我的结论是,scattergl界面不像svg那么成熟,但也许我用错了?
抱歉文字很长,但现在我真的很高兴听到一些关于如何加快速度的想法。