初学 Matplotlib之 与Web的交互

2019-12-10  本文已影响0人  AllenBigBear

前几篇记录了最简单的一些图像的生成,不过,最终我还是想要将这个数据可视化功能,做进我的网站里面,和web进行交互。

搜索了一下,发现pyplot无法直接和web进行交互,并且在matplotlib里面的教程,也是通过Figure类进行web交互。
另外网上还有一种做法,是通过将数据可视化的结果存为图片后保存在服务器上,最后调用图片,虽然效果可以达到,但是我想要的结果,是一个“动态”的效果,每次都去查询数据并进行生成。

所以,跟着基础教程里的内容来做一遍,教程里是拿Flask来测试,不过也大同小异。

1:Views函数

import base64
from io import BytesIO
from matplotlib.figure import Figure
# Create your views here.

def test_page(request):
    fig = Figure()
    ax = fig.subplots()
    ax.plot([1, 2])
    buf = BytesIO()
    fig.savefig(buf, format='png')
    data = base64.b64encode(buf.getbuffer()).decode('ascii')
    return HttpResponse(f"<img src='data:image/png;base64,{data}'/>")

2: 效果图

这样,每个球队的点的数据,就都可以显示了,目前每个球队的名字显示还有问题,后期再修改。


效果图
上一篇下一篇

猜你喜欢

热点阅读