使用Python的Flask框架,结合Highchart,动态渲染图表

服务端动态渲染图表

参考文章链接:https://www.highcharts.com.cn/docs/dynamic-produce-html-page

参考文章是使用php写的,我这边改用python写

具体如下:

1.目录结构:

ajax_demo
    ajax_demo.py
    templates
        -index.html
    static
        -jquery-3.3.1.min.js
        -highcharts-7.0.3.js

2.ajax_demo.py

from flask import Flask,render_template

app = Flask(__name__)


@app.route('/')
def index():
    data = {
        'text1':'对数折线图',
        'data1':[1, 2, 4, 8, 16, 32, 64, 128, 256, 512],
    }
    return render_template('index.html',**data)

if __name__ == '__main__':
    app.run(debug=True)

3..index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>第一个 Highcharts 图表</title>
    <!-- 引入 jquery.js -->
    <script src="static/jquery-3.3.1.min.js"></script>
    <!-- 引入 highcharts.js -->
    <script src="static/highcharts-7.0.3.js"></script>


</head>
<body>

<!-- 图表容器 DOM -->
<div id="container" style="min-width:500px;height:500px"></div>

<script>
    var chart = Highcharts.chart('container', {
        title: {
            text: '{{ text1 }}'
        },
        xAxis: {
            tickInterval: 1
        },
        yAxis: {
            type: 'logarithmic',
            minorTickInterval: 0.1
        },
        tooltip: {
            headerFormat: '<b>{series.name}</b><br />',
            pointFormat: 'x = {point.x}, y = {point.y}'
        },
        series: [{
            data: {{ data1 }},
            pointStart: 1
        }]
    });

</script>

</body>
</html>

注意:series中的data使用的是{{ data1 }}方式,没有加引号,但是title中的text使用的是'{{ text1 }}'的方式,加的有引号。后者若不加引号,则不显示图表。

其他参数估计也类是,凡是字符串的数据,从服务端传递过来数据,都需要加上引号。

转载于:https://www.cnblogs.com/sanduzxcvbnm/p/10423556.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Python Flask框架进行Pyecharts图形整合,需要安装以下组件: 1. Flask 2. Pyecharts 可以使用以下命令安装: ``` pip install flask pyecharts ``` 然后,创建一个Flask应用程序并设置路由。在路由函数中,可以使用Pyecharts创建图表并将其渲染为HTML字符串。 以下是一个简单的示例: ```python from flask import Flask, render_template from pyecharts.charts import Bar from pyecharts import options as opts app = Flask(__name__) @app.route('/') def index(): # 创建一个柱状图 bar = ( Bar() .add_xaxis(['A', 'B', 'C', 'D', 'E']) .add_yaxis('Series 1', [10, 20, 30, 40, 50]) .set_global_opts(title_opts=opts.TitleOpts(title="Bar Chart")) ) # 将图表渲染为HTML字符串 chart_html = bar.render_embed() # 渲染模板并返回HTML响应 return render_template('index.html', chart_html=chart_html) if __name__ == '__main__': app.run(debug=True) ``` 在上面的示例中,我们创建了一个柱状图,并将其渲染为HTML字符串。然后,我们将HTML字符串传递给模板,并在模板中使用`{{ chart_html|safe }}`渲染图表。 在模板中,我们需要使用Pyecharts提供的JavaScript文件和CSS文件。可以使用以下代码在模板中包含这些文件: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Pyecharts Example</title> <link rel="stylesheet" href="{{ url_for('static', filename='pyecharts/echarts.min.css') }}"> <script type="text/javascript" src="{{ url_for('static', filename='pyecharts/echarts.min.js') }}"></script> <script type="text/javascript" src="{{ url_for('static', filename='pyecharts/pyecharts.min.js') }}"></script> </head> <body> <div id="chart" style="width: 600px; height: 400px;"></div> <script type="text/javascript"> var chart = echarts.init(document.getElementById('chart')); {{ chart_html|safe }} chart.resize(); </script> </body> </html> ``` 在上面的模板中,我们包含了Pyecharts提供的两个JavaScript文件和一个CSS文件。然后,我们在`<div>`元素中创建一个图表容器,并在JavaScript代码中初始化图表渲染HTML字符串。最后,我们调用`chart.resize()`以确保图表正确缩放。 通过运行上面的代码,可以在http://localhost:5000/上看到创建的图表

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值