python动态绘图教程(Python动态绘图的方法)
python动态绘图教程(Python动态绘图的方法)from pyecharts import Scatter3Dimport random⑤ 建立html模板目录结构两个文件的代码如下python程序如下
方法五:利用flask和pyechart组合-web发布图形① 首先要安装flask框架
② 在windows的命令行执行:python -m venv myenv
③ 进入虚拟环境命令的脚本文件夹,激活虚拟环境
④ 然后安装flask包
⑤ 建立html模板目录结构
两个文件的代码如下
python程序如下
import random
from pyecharts import Scatter3D
from flask import Flask render_template
app = Flask(__name__)
REMOTE_HOST = "https://pyecharts.github.io/assets/js"
@app.route("/")
def hello():
s3d = scatter3d()
return render_template(
"pyecharts.html"
myechart=s3d.render_embed()
host=REMOTE_HOST
script_list=s3d.get_js_dependencies()
)
def scatter3d():
data = [generate_3d_random_point() for _ in range(80)]
range_color = [
"#313695"
"#4575b4"
"#74add1"
"#abd9e9"
"#e0f3f8"
"#fee090"
"#fdae61"
"#f46d43"
"#d73027"
"#a50026"
]
scatter3D = Scatter3D("3D scattering plot demo" width=1200 height=600)
scatter3D.add("" data is_visualmap=True visual_range_color=range_color)
return scatter3D
def generate_3d_random_point():
return [
random.randint(0 100) random.randint(0 100) random.randint(0 100)
]
if __name__=='__main__':
app.run(debug=True)
html文件的内容如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Proudly presented by ECharts</title>
{% for jsfile_name in script_list %}
<script src="https://img.aigexing.com{{ host }}/{{ jsfile_name }}.js"></script>
{% endfor %}
</head>
<body>
{{ myechart|safe }}
</body>
</html>
⑥ 在pycharm中运行server.py文件,在浏览器中访问127.0.0.1:5000即可
这是官方的例子。
在此基础上修改为折线图
from pyecharts import Line #引入不同的图形模块
from flask import Flask render_template
import numpy as np
app = Flask(__name__)
REMOTE_HOST = "https://pyecharts.github.io/assets/js" #远程js库,可以下载全部到自己的服务器上,修改这个路径就可以了
@app.route("/")
def hello():
myline=mydata_line() #这个地方就是基本的pyechart图形绘制,返回一个图形对象
return render_template(
"pyecharts.html" #模板的名称,模板默认位置在templates文件夹下
myechart=myline.render_embed() #给模板传递echart图形参数
host=REMOTE_HOST #js库的位置
script_list=myline.get_js_dependencies() #给模块传echart图形的js代码,我理解的,不一定对
)
#此函数就是普通的画图函数,数据怎么处理都可以,利用基本知识
def mydata_line():
x=list(range(50))
y1=list(np.random.random(50))
y2=list(np.random.random(50))
line=Line("折线图flask")
line.add("A" x y1)
line.add("B" x y2)
#line.render("myechart001.html") # 生成html文件,这是静态方法生成网页
return line
if __name__=='__main__':
app.run(debug=True)
html文件的内容不变,还利用官方例子的内容。
这种方法,比较简单可以快速的发布html格式的网页,但是问题是html网页的内容比较单一,需要根据需求进行修改,但是应用的案例比较少,属于小众方法。
主要问题:没有方法实现动态刷新图形图形的方法,图形都是利用已知的数据,生成静态的html网页进行发布,因此不适用动态刷新的方法
扩展思路,直接利用底层得echart进行数据展示