该Rand()函数将生成一个介于0和1之间的实数.Randbetween(-1,1)将生成-1,0或1.我想要的只有-1或1.那么-1和1之间的实数怎么样?
使用 python flask 模块,我想要
app = flask.Flask(__name__)
Run Code Online (Sandbox Code Playgroud)
作为类的属性:
class Handler(object):
def __init__(self):
self.datastores = {}
self.websocket_queue = gevent.queue.JoinableQueue()
self.app = flask.Flask(__name__)
Run Code Online (Sandbox Code Playgroud)
问题是如何访问装饰器呢?
@self.app.route('/socket.io/<path:remaining>')
def socketio(self, remaining):
Run Code Online (Sandbox Code Playgroud)
这会产生错误NameError: name 'self' is not defined
谢谢
我试图避免使用ColumnDataSource,而是将pandas数据框列直接传递给Bokeh图。
很快,尽管我不得不实现一个HoverTool,它要求将数据存储在ColumnDataSource中。因此,我开始使用ColumnDataSource。
现在,我正在创建一个框注释,并且必须使用数据中某一列的最大值来定义框的顶部边框。
我可以使用熊猫轻松做到这一点:
low_box = BoxAnnotation(
top=flowers['petal_width'][flowers['species']=='setosa'].max(),
fill_alpha=0.1, fill_color='red')
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何从ColumnDataSource中提取最大值。
有没有办法从中提取最大值,或者我的方法首先是错误的?
我正在使用一个名为 justpy 的新 Python Web 框架,它允许您仅使用 Python 构建 Web 应用程序的后端和前端。该框架还与 javascript Highcharts 库集成。以下是构建包含 Highcharts 图的 Web 应用程序的方法:
import justpy as jp
import pandas as pd
wm = pd.read_csv('https://elimintz.github.io/women_majors.csv').round(2)
# Create list of majors which start under 20% women students
wm_under_20 = list(wm.loc[0, wm.loc[0] < 20].index)
def women_majors():
wp = jp.WebPage()
wm.jp.plot(0, wm_under_20, kind='spline', a=wp, title='The gender gap is transitory - even for extreme cases',
subtitle='Percentage of Bachelors conferred to women form 1970 to 2011 in the US for extreme cases …Run Code Online (Sandbox Code Playgroud) 我想转这个清单:
l=["Three","Four","Five","Six"]
Run Code Online (Sandbox Code Playgroud)
进入这一个:
['Three', 3, 'Four', 4, 'Five', 5, 'Six', 6]
Run Code Online (Sandbox Code Playgroud)
我用这个代码(效果很好)来做到这一点:
for i,j in zip(range(1,len(l)*2,2),range(3,7)*2):
l.insert(i,j)
Run Code Online (Sandbox Code Playgroud)
但我想Python不会为此感到骄傲.这有更短的路吗?
当我编写一个类时,我在__init__方法中声明了一些变量,在其他函数中声明了一些变量.所以,我通常最终得到这样的东西:
class Foo:
def __init__(self,a, b):
self.a=a
self.b=b
def foo1(self,c, d)
sum=self.a+self.b+c+d
foo2(sum)
def foo2(self,sum)
print ("The sum is ", sum)
Run Code Online (Sandbox Code Playgroud)
我发现这种方式有点混乱,因为很难跟踪所有变量.相反,在__init__方法中声明变量时管理变量变得更加容易.因此,我们不会使用以前的表单,而是:
class Foo:
def __init__(self,a, b, c, d, sum):
self.a=a
self.b=b
self.c=c
self.d=d
self.sum=sum
def foo1(self)
self.sum=self.a+self.b+self.c+self.d
foo2(self.sum)
def foo2(self)
print ("The sum is ", self.sum)
Run Code Online (Sandbox Code Playgroud)
你会选择哪一个?为什么?你认为在方法中声明类的所有函数的所有变量__init__是更好的做法吗?
我需要计算数据框第一列的平均值,我可以使用该mean()方法来做到这一点。问题:有时,数据中有 -9999 个值表示缺失的观测值。我知道在计算 Pandas 中的平均值时,NaN 值本质上会被跳过,但这当然不是 -9999 值的情况。
这是我试过的代码。它计算列的平均值,但通过将 -9999 值纳入计算:
df=pandas.DataFrame([{2,4,6},{1,-9999,3}])
df[0].mean(skipna=-9999)
Run Code Online (Sandbox Code Playgroud)
但它产生的平均值为 -4998.5,这显然是将 -9999 纳入计算产生的。
我期待得到Flask返回的简单线散景图,但是当我浏览到localhost时我得到的是:5002/simpleline是这样的:
('','')
我有两个文件.Python文件:
from bokeh.plotting import figure, show, output_file
from bokeh.embed import components
from flask import Flask, render_template
app=Flask(__name__)
@app.route('/simpleline/')
def simpleLine():
fig=figure(title="Sensor data")
fig.line([1,2,3,4],[2,4,6,8])
div=components(fig)
return render_template('simpleline.html',div=div)
show(fig)
if __name__ == "__main__":
app.run(debug=True,port=5002)
Run Code Online (Sandbox Code Playgroud)
和HTML模板:
<!doctype html>
<html>
<head>
<title>Figure examples</title>
<link rel="stylesheet" href="http://cdn.bokeh.org/bokeh-0.7.1.min.css" type="text/css" />
<script type="text/javascript"src="http://cdn.bokeh.org/bokeh-0.7.1.min.js"></script>
</head>
<body>
<div class='bokeh'>
{{ div|safe }}
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我相信我错过了一些必不可少的东西.
在mn的回答之后,发现它components()产生了两个元素,一个Javascript字符串和一个html div.所以,我更新了我的脚本如下,但这次网页显示为空白.
from bokeh.plotting import figure, show, output_file
from bokeh.embed import components
from flask import Flask, render_template
app=Flask(__name__)
@app.route('/simpleline/') …Run Code Online (Sandbox Code Playgroud) 我有一个Flask应用程序,我已经嵌入了一个Bokeh服务器图,我无法让他们都在Heroku上工作.我正在尝试在Heorku上部署,我可以从Procfile启动Bokeh应用程序或Flask应用程序,但不能同时启动它们.因此,要么显示Flask提供的内容,要么显示Bokeh图.
当我在Procfile中使用以下行部署时,Bokeh内容显示在网页上,但Flask中没有任何内容:
web: bokeh serve --port=$PORT --host=bokehapp.herokuapp.com --host=* --address=0.0.0.0 --use-xheaders bokeh_script.py
Run Code Online (Sandbox Code Playgroud)
如果我使用以下内容部署,我只获取Flask内容,而不是Bokeh图:
web: gunicorn app:app
Run Code Online (Sandbox Code Playgroud)
在第二种情况下,我使用子进程在app.py Flask脚本中启动Bokeh:
bokeh_process = subprocess.Popen(
['bokeh', 'serve','--allow-websocket-origin=bokehapp.herokuapp.com','--log-level=debug','standard_way_with_curdoc.py'], stdout=subprocess.PIPE)
Run Code Online (Sandbox Code Playgroud)
Heroku日志不显示任何错误.
我还尝试了第三种选择:
web: bokeh serve --port=$PORT --host=bokehapp.herokuapp.com --host=* --address=0.0.0.0 --use-xheaders bokeh_script.py
web: gunicorn app:app
Run Code Online (Sandbox Code Playgroud)
这只显示了Flask的内容.似乎只考虑了第二名工人.
所以,我的问题是如何修改Procfile来考虑这两个进程?或者也许我一起接近这个错误?您可以提供的任何线索将不胜感激.