iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python中的PywebIO模块制作一个数据大屏
  • 336
分享到

python中的PywebIO模块制作一个数据大屏

2024-04-02 19:04:59 336人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录一、PyWEBio介绍二、PywebIO和Pyecharts的组合三、PywebIO和Bokeh的组合四、基于浏览器的GUI应用一、PywebIO介绍 python当中的Pywe

一、PywebIO介绍

python当中的PywebIO模块可以帮助开发者在不具备htmljavascript的情况下也能够迅速构建Web应用或者是基于浏览器的GUI应用,PywebIO还可以和一些常用的可视化模块联用,制作成一个可视化大屏,

我们先来安装好需要用到的模块

pip install pywebio
pip install cutecharts

上面提到的cutecharts模块是Python当中的手绘风格的可视化神器,相信大家对此并不陌生,我们来看一下它与PywebIO模块结合绘制图表的效果是什么样的,

代码如下:

from cutecharts.charts import Bar
from cutecharts.faker import Faker

from pywebio import start_server
from pywebio.output import put_html

def bar_base():
    chart = Bar("Bar-基本示例", width="100%")
    chart.set_options(labels=Faker.choose(), x_label="I'm xlabel", y_label="I'm ylabel")
    chart.add_series("series-A", Faker.values())
    put_html(chart.render_notebook())

if __name__ == '__main__':
    start_server(bar_base, debug=True, port=8080)

output:

上述代码的逻辑并不难看懂,先实例化一个直方图Bar()对象,然后填上X轴对应的标签以及对应Y轴的值,最后调用PywebIO模块当中的put_html()方法,我们会看到一个URL

在浏览器当中输入该URL便能够看到我们绘制出来的图表。当然在cutecharts模块当中有Page()方法来将各个图表都连接起来,做成一张可视化大屏,

代码如下:

def bar_base():
    chart = Bar("Bar-基本示例", width="100%")
    chart.set_options(labels=Faker.choose(), x_label="I'm xlabel", y_label="I'm ylabel")
    chart.add_series("series-A", Faker.values())
    return chart

def pie_base() -> Pie:
    chart = Pie("标题", width="100%")
    ........
    return chart

def radar_base() -> Radar:
    chart = Radar("标题", width="100%")
    ......
    return chart

def line_base() -> Line:
    chart = Line("标题", width="100%")
    ......
    return chart

def main():
    page = Page()
    page.add(pie_base(), pie_base(), radar_base(), line_base(), bar_base())
    put_html(page.render_notebook())

if __name__ == '__main__':
    start_server(main, debug=True, port=8080)

output:

二、PywebIO和Pyecharts的组合

PywebIO模块遇上Pyecharts模块时,代码的逻辑基本上和cutecharts的一致,先是实例化一个图表的对象,然后在添加完数据以及设置好图表的样式之后,最后调用put_html()方法将最后的结果在浏览器中呈现

# `chart` 是你的图表的实例
pywebio.output.put_html(chart.render_notebook())

在这个案例当中我们调用Pyecharts当中的组合组件,分别来呈现绘制完成的图表,代码如下:

def bar_plots():
    bar = (
        Bar()
            .add_xaxis(Faker.choose())
            .add_yaxis("商家A", Faker.values())
            .add_yaxis("商家B", Faker.values())
            .set_global_opts(title_opts=opts.TitleOpts(title="Grid-Bar"))
    )
    return bar

def line_plots():
    line = (
        Line()
            .add_xaxis(Faker.choose())
            .add_yaxis("商家A", Faker.values())
            .add_yaxis("商家B", Faker.values())
            .set_global_opts(
            title_opts=opts.TitleOpts(title="Grid-Line", pos_top="48%"),
            legend_opts=opts.LegendOpts(pos_top="48%"),
        )
    )
    return line

def main():
    c = (
        Grid()
            .add(bar_plots(), grid_opts=opts.GridOpts(pos_bottom="60%"))
            .add(line_plots(), grid_opts=opts.GridOpts(pos_top="60%"))
    )
    c.width = "100%"
    put_html(c.render_notebook())

if __name__ == '__main__':
    start_server(main, debug=True, port=8080)

output:

三、PywebIO和Bokeh的组合

PywebIOBokeh的组合从代码的语法上来看会稍微和上面的不太一样,具体的不同如下所示:

from bokeh.io import output_notebook
from bokeh.io import show

output_notebook(notebook_type='pywebio')
fig = figure(...)
...
show(fig)

例如我们来绘制一个简单的直方图,代码如下:

def bar_plots():

    output_notebook(notebook_type='pywebio')
    fruits = ['Apples', 'Pears', 'Nectarines', 'Plums', 'Grapes', 'Strawberries']
    counts = [5, 3, 4, 2, 4, 6]

    p = figure(x_range=fruits, plot_height=350, title="Fruit Counts",
               toolbar_location=None, tools="")

    p.vbar(x=fruits, top=counts, width=0.9)
    p.xgrid.grid_line_color = None
    p.y_range.start = 0

    show(p)

if __name__ == "__main__":
    start_server(bar_plots, debug=True, port=8080)

output:

四、基于浏览器的GUI应用

除了将Pywebio模块与常用的可视化模块结合用于各种图表的绘制之外,我们还能用它构建一个基于浏览的图形界面,我们先来做一个最为简单的应用,代码如下:

from pywebio.input import *
from pywebio.output import *

data = input_group(
    "用户数据",
    [
        input("请问您的名字是: ", name="name", type=TEXT),
        input("输入您的年龄", name="age", type=NUMBER),
        radio(
            "哪个洲的",
            name="continent",
            options=[
                "非洲",
                "亚洲",
                "澳大利亚",
                "欧洲",
                "北美洲",
                "南美洲",
            ],
        ),
        checkbox(
            "用户隐私条例", name="agreement", options=["同意"]
        ),
    ],
)

put_text("表格输出:")

put_table(
    [
        ["名字", data["name"]],
        ["年龄", data["age"]],
        ["位置", data["continent"]],
        ["条例", data["agreement"]],
    ]
)

output:

当中部分函数方法的解释如下:

  • input(): 文本内容的输入
  • radio(): 代表的是单选框
  • checkbox(): 代表的是多选框
  • input_group(): 代表的是输入组
  • put_table(): 代表的是输出组
  • put_text(): 代表的是输出文本

到此这篇关于python中的PywebIO模块制作一个数据大屏的文章就介绍到这了,更多相关PywebIO制作数据大屏内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python中的PywebIO模块制作一个数据大屏

本文链接: https://www.lsjlt.com/news/141229.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python中的PywebIO模块制作一个数据大屏
    目录一、PywebIO介绍二、PywebIO和Pyecharts的组合三、PywebIO和Bokeh的组合四、基于浏览器的GUI应用一、PywebIO介绍 Python当中的Pywe...
    99+
    2024-04-02
  • 怎么用python中的PywebIO模块制作一个数据大屏
    这篇文章主要介绍了怎么用python中的PywebIO模块制作一个数据大屏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用python中的PywebIO模块制作一个数据大屏文章都会有所收获,下面我们一起来看...
    99+
    2023-06-29
  • 怎么使用Python制作一个数据大屏
    本篇内容主要讲解“怎么使用Python制作一个数据大屏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Python制作一个数据大屏”吧!PywebIO介绍Python当中的PywebIO模...
    99+
    2023-07-06
  • 50 行 Python 代码制作一个数据大屏!
    PywebIO介绍Python当中的PywebIO模块可以帮助开发者在不具备HTML和JavaScript的情况下也能够迅速构建Web应用或者是基于浏览器的GUI应用,PywebIO还可以和一些常用的可视化模块联用,制作成一个可视化大屏。我...
    99+
    2023-05-14
    代码 工具 Python
  • 分享一个Python 遇到数据库超好用的模块
    目录一、定义表结构二、创建以及删除表三、插入数据四、查询五、更新和删除数据六、直接运行SQL语句七、DataFrame到MySQL数据库前言: 大家好,今天我和大家来聊一下SQLAL...
    99+
    2024-04-02
  • python中怎么实现一个随机数模块
    python中怎么实现一个随机数模块,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。随机整数:>>> import random ...
    99+
    2023-06-17
  • Python中的pandas表格模块、文件模块和数据库模块
    目录一、Series数据结构1、Series的创建2、Series属性2、Series缺失数据处理二、DataFrame数据结构1、DataFrame的创建2、DataFrame属性...
    99+
    2024-04-02
  • 用Python制作一个自动点击器,三种模块都可以
    顾名思义,Python中的自动点击器是一个简单的Python应用程序,可以按照用户的要求重复点击鼠标。不同的参数,如速度、频率和位置,可以根据用户的要求进行改变。 Python有不同的模块可用于控制键...
    99+
    2023-09-01
    python 开发语言
  • 如何在Python中利用Turtle模块绘制一个国旗
    本文章向大家介绍如何在Python中利用Turtle模块绘制一个国旗的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言...
    99+
    2023-06-06
  • Python中mmap模块处理大文本的操作方法
    目录mmap 介绍WindowsUnix支持的方法使用mmap读取大文件什么时候用mmap?总结:使用mmap的时机如果现在有一个需求,我们需要处理一个20G的大文件,我们会怎么处理...
    99+
    2023-02-07
    Python中mmap模块 Python mmap模块
  • 如何做出一个优秀的数据可视化大屏?
    众所周知, 未来的数据可视化趋势已成为了必然性,越来越多的企业、政府等的应用场景应用 都 会普及 ,销售、教育、医疗、贸易等行业领域也涉及广泛 ,根据实时的监控数据,把最新的数据展现在大屏幕上...
    99+
    2024-04-02
  • 一个Python优雅的数据分块方法详解
    目录1.背景2.islice2.1示例2.2只指定步长3.iter3.1常规使用3.2进阶使用4.islice 和 iter 组合使用5.总结1.背景 看到这个标题你可能想一个分块能...
    99+
    2024-04-02
  • 怎么用Python制作一个数据预处理小工具
    这篇文章主要讲解了“怎么用Python制作一个数据预处理小工具”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python制作一个数据预处理小工具”吧!在我们平常使用Python进行数据...
    99+
    2023-06-15
  • 怎么在python中导入一个需要传参的模块
    怎么在python中导入一个需要传参的模块?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。文件test1.pyimport argparsefrom argp...
    99+
    2023-06-15
  • Python在大数据处理中的作用有多大?
    Python是一种高级编程语言,由于其简单易学、可扩展性强、生态系统完善等特点,成为了大数据处理领域的热门语言。本文将介绍Python在大数据处理中的作用以及优势,并演示一些常用的Python大数据处理代码。 一、Python在大数据处理...
    99+
    2023-08-18
    git django 大数据
  • Python中的collections集合与typing数据类型模块
    目录一、collections集合1、namedtuple:命名tuple对象2、deque:双端队列3、defaultdict:默认字典4、OrderedDict:顺序字典5、Co...
    99+
    2024-04-02
  • 怎么用Python中的PyQt5制作一个获取网络实时数据NBA数据播报GUI功能
    这篇文章主要讲解了“怎么用Python中的PyQt5制作一个获取网络实时数据NBA数据播报GUI功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python中的PyQt5制作一个获取...
    99+
    2023-06-20
  • python 从灯塔国某大学的作业题到制作一个“围棋”程序
    以下是灯塔国某大学大一年级非计算机专业的一道Python课作业题,大致翻译如下: 编写一个类: 该类Building应具有以下方法: ●一个构造函数,它根本不接受任何参数(除了通常的`self`) ●setHeightRandom(m...
    99+
    2023-09-16
    python tkinter 围棋
  • Python中的数据可视化matplotlib与绘图库模块
    目录一、条形图bar()二、直方图三、折线图四、散点图+直线图五、饼图六、箱型图七、plot函数参数八、图像标注参数九、Matplolib应用matplotlib官方文档:https...
    99+
    2024-04-02
  • SqlServer将数据库中的表复制到另一个数据库
    目录SqlServer将数据库中的表复制到另一个数据库一、如果两个数据库在同一台服务器上二、如果两个数据库在不同的服务器上复制表结构与数据的图文方法复制表结构表的数据内容复制图文方法...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作