当前位置:   article > 正文

python可视化界面编程工具,python怎么做可视化界面_python做可视化界面

python做可视化界面

本篇文章给大家谈谈python可视化界面自动生成,以及python可视化界面编程工具,希望对各位有所帮助,不要忘了收藏本站喔。

目录

前言

一.环境配置

 插件:

        1.python

        2.Chinese

        3.Open In Default Browser

      安装python数据可视化的库 pyecharts库

二.制作可视化大屏

        从网站中找示例图

1、小编自己做过的各省份车辆销售数量图

 2、数据对比类型

 3、渐变圆柱

 4、饼图

 制作大屏

1、制作一个大屏

2、运行下面的代码后会在ipynb所在的目录下生成一个HTML文件,会将示例图汇总到HTML中,在html中调整各个图形的位置和大小

3、最后通过一下代码来调整显示示例图在大屏中的位置

 总结


前言

本文章是用网站的示例图用python汇总后用html在网页中实现数据可视化,最后达到数据大屏的效果

一.环境配置

小编用的软件:Visual Studio Code                   

 插件:

        1.python

         这个插件是Visual Studio代码扩展,丰富地支持Python语言(适用于该语言的所有受支持版本:>=3.7),包括IntelliSense(Pylance)、linting、调试、代码导航、代码格式化、重构、变量资源管理器、测试资源管理器等功能!       

        2.Chinese

        这个插件是将Visual Studio Code页面中文化的插件,对一些英语不太好的程序员是比较友好的

        3.Open In Default Browser

         这个插件我是方便使用一些html的文件时可以在Visual Studio Code中直接跳转到网页中所用的,如:

      安装python数据可视化的库 pyecharts库

        打开anaconda prompt
        安装pip install pyecharts==1.9 -i Simple Index


        查看是否成功 pip show pyecharts

 

 所用到的环境就安装好啦!接下来就可以用python制作可视化大屏啦

二.制作可视化大屏

        从网站中找示例图

        1.我们可以从下面的网站中任意找3-6个可视化示例图

        Document

        这个网站中包含各种图形demo的项目案例代码和演示。

        2.而下面的官网文档包含pyecharts中各个功能和图形的介绍和代码参数解析python艺术作品

        pyecharts - A Python Echarts Plotting Library built with love.

        pyecharts的画图语法结构

小编找的四个图是

1、面积图
  1. import pyecharts.options as opts
  2. from pyecharts.charts import Line
  3. from pyecharts.faker import Faker
  4. a = (
  5. Line()
  6. .add_xaxis(Faker.choose())
  7. .add_yaxis("商家A", Faker.values(), is_smooth=True)
  8. .add_yaxis("商家B", Faker.values(), is_smooth=True)
  9. .set_series_opts(
  10. areastyle_opts=opts.AreaStyleOpts(opacity=0.5),
  11. label_opts=opts.LabelOpts(is_show=False),
  12. )
  13. .set_global_opts(
  14. title_opts=opts.TitleOpts(title="面积图"),
  15. xaxis_opts=opts.AxisOpts(
  16. axistick_opts=opts.AxisTickOpts(is_align_with_label=True),
  17. is_scale=False,
  18. boundary_gap=False,
  19. ),
  20. )
  21. # .render("line_areastyle_boundary_gap.html")
  22. )
  23. a.render_notebook()

 2、数据对比类型
  1. from pyecharts import options as opts
  2. from pyecharts.charts import Bar
  3. from pyecharts.faker import Faker
  4. b = (
  5. Bar()
  6. .add_xaxis(Faker.days_attrs)
  7. .add_yaxis("商家A", Faker.days_values, color='#5cd8d0')
  8. .set_global_opts(
  9. title_opts=opts.TitleOpts(title="数据对比类型"),
  10. datazoom_opts=opts.DataZoomOpts(type_="inside"),
  11. )
  12. #.render("bar_datazoom_inside.html")
  13. )
  14. b.render_notebook()

 3、渐变圆柱
  1. from pyecharts import options as opts
  2. from pyecharts.charts import Bar
  3. from pyecharts.commons.utils import JsCode
  4. from pyecharts.faker import Faker
  5. c = (
  6. Bar()
  7. .add_xaxis(Faker.choose())
  8. .add_yaxis("商家A", Faker.values(), category_gap="60%")
  9. .set_series_opts(
  10. itemstyle_opts={
  11. "normal": {
  12. "color": JsCode(
  13. """new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
  14. offset: 0,
  15. color: 'rgba(0, 244, 255, 1)'
  16. }, {
  17. offset: 1,
  18. color: 'rgba(0, 77, 167, 1)'
  19. }], false)"""
  20. ),
  21. "barBorderRadius": [30, 30, 30, 30],
  22. "shadowColor": "rgb(0, 160, 221)",
  23. }
  24. }
  25. )
  26. .set_global_opts(title_opts=opts.TitleOpts(title="渐变圆柱"))
  27. # .render("bar_border_radius.html")
  28. )
  29. c.render_notebook()

 4、饼图
  1. from pyecharts import options as opts
  2. from pyecharts.charts import Pie
  3. from pyecharts.faker import Faker
  4. d = (
  5. Pie()
  6. .add(
  7. "",
  8. [list(z) for z in zip(Faker.choose(), Faker.values())],
  9. radius=["40%", "55%"],
  10. label_opts=opts.LabelOpts(
  11. position="outside",
  12. formatter="{a|{a}}{abg|}\n{hr|}\n {b|{b}: }{c} {per|{d}%} ",
  13. background_color="#eee",
  14. border_color="#aaa",
  15. border_width=1,
  16. border_radius=4,
  17. rich={
  18. "a": {"color": "#999", "lineHeight": 22, "align": "center"},
  19. "abg": {
  20. "backgroundColor": "#e3e3e3",
  21. "width": "100%",
  22. "align": "right",
  23. "height": 22,
  24. "borderRadius": [4, 4, 0, 0],
  25. },
  26. "hr": {
  27. "borderColor": "#aaa",
  28. "width": "100%",
  29. "borderWidth": 0.5,
  30. "height": 0,
  31. },
  32. "b": {"fontSize": 16, "lineHeight": 33},
  33. "per": {
  34. "color": "#eee",
  35. "backgroundColor": "#334455",
  36. "padding": [2, 4],
  37. "borderRadius": 2,
  38. },
  39. },
  40. ),
  41. )
  42. .set_global_opts(title_opts=opts.TitleOpts(title=""))
  43. # .render("pie_rich_label.html")
  44. )
  45. d.render_notebook()

 制作大屏

1、制作一个大屏

        这个大屏仅仅显示一个大标题和时间

  1. from pyecharts.charts import Pie
  2. from datetime import datetime
  3. now_time = datetime.now().strftime('%Y-%m-%d') # 获取当前时间
  4. big_title = (
  5. Pie() # 不画图,只显示一个标题,用来构成大屏的标题
  6. .set_global_opts(
  7. title_opts=opts.TitleOpts(title="可视化大屏",
  8. title_textstyle_opts=opts.TextStyleOpts(font_size=40,
  9. # color='#FFFFFF',
  10. ),
  11. subtitle = f'截至:{now_time}',
  12. pos_top=10
  13. )
  14. )
  15. )
  16. big_title.render_notebook()
2、运行下面的代码后会在ipynb所在的目录下生成一个HTML文件,会将示例图汇总到HTML中,在html中调整各个图形的位置和大小
  1. from pyecharts.charts import Page
  2. page = Page()
  3. page.add(
  4. big_title,
  5. b,
  6. c,
  7. d,
  8. a
  9. )
  10. # page.render_notebook()
  11. page.render('page.html') # 在html中可以调整各个图形的位置和大小,按“Save Config”键保存配置chart_config.json(有的电脑不成功)。

 其中的、big_title、a、b、c、d分别对应的是

        big_title 制作的标签大屏

        a 面积图

        b 数据对比类型

        c 渐变圆柱

        d 饼图

3、最后通过一下代码来调整显示示例图在大屏中的位置
  1. with open("page.html", "r+", encoding='utf-8') as html:
  2. html_bf = BeautifulSoup(html, 'lxml')
  3. divs = html_bf.select('.chart-container') # 根据css定位标签,选中图像的父节点标签
  4. divs[0]["style"] = "width:50%;height:50%;position:absolute;top:0%;left:45%;border-style:dashed;border-color:#89641;border-width:0px;"
  5. divs[1]["style"] = "width:40%;height:40%;position:absolute;top:10%;left:5%;border-style:solid;border-color:#444444;border-width:2px;"
  6. divs[2]["style"] = "width:40%;height:40%;position:absolute;top:10%;left:55%;border-style:solid;border-color:#444444;border-width:2px;"
  7. divs[3]["style"] = "width:40%;height:40%;position:absolute;top:55%;left:5%;border-style:solid;border-color:#444444;border-width:2px;"
  8. divs[4]["style"] = "width:40%;height:40%;position:absolute;top:55%;left:55%;border-style:solid;border-color:#444444;border-width:2px;"
  9. body = html_bf.find("body") # 根据标签名称定位到body标签
  10. # body["style"] = img.imread('') # 修改背景颜色
  11. body["style"] = "background-color:#ffffff;" # 修改背景颜色
  12. # body["style"] = "background-image:(博客\kj.jpeg);" # 修改背景颜色
  13. html_new = str(html_bf) # 将BeautifulSoup对象转换为字符
  14. html.seek(0, 0) # 光标移动至
  15. html.truncate() # 删除光标后的所有字符内容
  16. html.write(html_new) # 将由BeautifulSoup对象转换得到的字符重新写入html文件
  17. html.close()

让我们看看最后的效果吧!

 总结

        在以上的制作可视化大屏中小编的只是基础版的,我们还可以将可视化的大屏换一些背景,使其更加的美观,也可以调整几个示例图在大屏中的比例。如果想要更深入的了解用python制作可视化大屏,那就在https://pyecharts.org/#/zh-cn/intro网站中和小编一起学习吧!

文章知识点与官方知识档案匹配,可进一步学习相关知识
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/841758
推荐阅读
相关标签
  

闽ICP备14008679号