当前位置:   article > 正文

十、Python基础综合案例(数据可视化)_python数据分析可视化实例报告

python数据分析可视化实例报告
  1. json数据格式

  1. json :是一种轻量级的数据交互格式,采用完全独立于编程语言的文本格式来存储和表示数据(就是字符串)

Python语言使用JSON有很大优势,因为JSON无非就是一个单独的字典或一个内部元素都是字典的列表

所以JSON可以直接和Python的字典或列表进行无缝转换

2.json格式数据转化

  • 通过 json.dumps(data) 方法把python数据转化为了 json数据data = json.dumps(data)

  • 如果有中文可以带上:ensure ascii=False参数来确保中文正常转换

  • 通过json.loads(data) 方法把josn数据转化为了 python列表或字典

  • data = json.loads(data)

  1. """
  2. JSON数据和Python字典的相互转换
  3. """
  4. import json
  5. # 准备列表列表内每一个元素都是字典,将其转换为JSON
  6. data = [{"name":"zhangsan","age":12},{"name":"lisi","age":13},{"name":"wangwu","age":"14"}]
  7. json_str = json.dumps(data) # 若有中文可用ensure_ascii=False
  8. print(type(json_str))
  9. print(json_str)
  10. # 准备字典,将字典转换为JSON
  11. d = {"zhangsan":"嫌疑人","lisi":"受害者"}
  12. json_str = json.dumps(data,ensure_ascii=False) # 若有中文可用ensure_ascii=False
  13. print(type(json_str))
  14. print(json_str)
  15. # 将JSON字符串转换为Python数据类型[{k:v,k:v},{k:v,k:v}]
  16. s = '[{"name":"zhangsan","age":12},{"name":"lisi","age":13},{"name":"wangwu","age":"14"}]'
  17. l = json.loads(s)
  18. print(type(l))
  19. print(l)
  20. # 将JSON字符串转换为Python数据类型{k:v,k:v}
  21. s = '{"zhangsan":"嫌疑人","lisi":"受害者"}'
  22. d = json.loads(s)
  23. print(type(d))
  24. print(d)
'
运行
  1. <class 'str'>
  2. [{"name": "zhangsan", "age": 12}, {"name": "lisi", "age": 13}, {"name": "wangwu", "age": "14"}]
  3. <class 'str'>
  4. [{"name": "zhangsan", "age": 12}, {"name": "lisi", "age": 13}, {"name": "wangwu", "age": "14"}]
  5. <class 'list'>
  6. [{'name': 'zhangsan', 'age': 12}, {'name': 'lisi', 'age': 13}, {'name': 'wangwu', 'age': '14'}]
  7. <class 'dict'>
  8. {'zhangsan': '嫌疑人', 'lisi': '受害者'}

  1. pyecharts模块介绍

1.开发可视化图表使用的技术栈是:

Echarts框架的Python版本:pyecharts包

2.如何安装PyEcharts包:

pip install pyecharts

3如何查看官方示例

打开官方画廊:

https://gallery.pyecharts.org/#/README

  1. pyecharts快速入门

1.pyecharts模块中有很多的配置选项,常用到三个类别的选项:
  • 全局配置选项

  • 系列配置选项

2.全局配置项能做什么?
  • 配置图表的标题

  • 配置图例

  • 配置鼠标移动效果

  • 配置工具栏

  • 等整体配置项

  1. """
  2. pyecharts的基础入门
  3. """
  4. # 导包
  5. import os
  6. from pyecharts.charts import Line
  7. from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts
  8. # 创建一个折线图对象
  9. line = Line()
  10. # 给折线图对象添加x轴的数据
  11. line.add_xaxis(["中国","美国","英国"])
  12. # 给折线图对象添加y轴的数据
  13. line.add_yaxis("GDP",[30,20,10])
  14. # 通过render方法,将代码生成为图像
  15. line.render()
  16. # 设置全局配置项
  17. line.set_global_opts(
  18. title_opts=TitleOpts(title="GDP展示",pos_left="center",pos_bottom="1%"),
  19. legend_opts=LegendOpts(is_show=True),
  20. toolbox_opts=ToolboxOpts(is_show=True),
  21. visualmap_opts=VisualMapOpts(is_show=True)
  22. )
  23. # 通过render方法,将代码生成为图像
  24. line.render()
  25. os.system("render.html") # 直接打开网页

*import os...............os.system("render.html")直接打开网页

  1. 数据处理和创建折线图

  1. """
  2. 演示可视化需求1,折线图开发
  3. """
  4. import os
  5. import json
  6. from pyecharts.charts import Line
  7. from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts,LabelOpts
  8. # 处理数据
  9. f_us = open("D:/BaiduNetdiskDownload/资料/可视化案例数据/折线图数据/美国.txt","r",encoding="UTF-8")
  10. us_data = f_us.read() # 读取美国的全部内容
  11. f_jp = open("D:/BaiduNetdiskDownload/资料/可视化案例数据/折线图数据/日本.txt","r",encoding="UTF-8")
  12. jp_data = f_jp.read() # 读取日本的全部内容
  13. f_in = open("D:/BaiduNetdiskDownload/资料/可视化案例数据/折线图数据/印度.txt","r",encoding="UTF-8")
  14. in_data = f_in.read() # 读取印度的全部内容
  15. # 去掉JSON规范的开头
  16. us_data = us_data.replace("jsonp_1629344292311_69436(","")
  17. jp_data = jp_data.replace("jsonp_1629350871167_29498(","")
  18. in_data = in_data.replace("jsonp_1629350745930_63180(","")
  19. # 去掉不合JSON规范的结尾
  20. us_data = us_data[:-2]
  21. jp_data = jp_data[:-2]
  22. in_data = in_data[:-2]
  23. # JSON转Python字典
  24. us_dict = json.loads(us_data)
  25. jp_dict = json.loads(jp_data)
  26. in_dict = json.loads(in_data)
  27. # 获取日期数据,用于x轴,取到2020年底(到314下标结束)
  28. us_x_data = us_dict['data'][0]['trend']['updateDate'][:314]
  29. jp_x_data = jp_dict['data'][0]['trend']['updateDate'][:314]
  30. in_x_data = in_dict['data'][0]['trend']['updateDate'][:314]
  31. # 获取日期数据,用于y轴,
  32. us_y_data = us_dict['data'][0]['trend']['list'][0]['data'][:314]
  33. jp_y_data = jp_dict['data'][0]['trend']['list'][0]['data'][:314]
  34. in_y_data = in_dict['data'][0]['trend']['list'][0]['data'][:314]
  35. # 生成图表
  36. line = Line() # 构建折线图对象
  37. # 添加x轴数据
  38. line.add_xaxis(us_x_data)
  39. # 添加y轴数据
  40. line.add_yaxis("美国确诊人数",us_y_data,label_opts=LegendOpts(is_show=False)) # 添加美国的y轴数据
  41. line.add_yaxis("日本确诊人数",jp_y_data,label_opts=LegendOpts(is_show=False)) # 添加日本的y轴数据
  42. line.add_yaxis("印度确诊人数",in_y_data,label_opts=LegendOpts(is_show=False)) # 添加印度的y轴数据
  43. # 设置全局配置项
  44. line.set_global_opts(
  45. title_opts=TitleOpts(title="2022.2-12美日印三国疫情数量增长折线图",pos_left="center",pos_bottom="1%"),
  46. legend_opts=LegendOpts(is_show=True),
  47. toolbox_opts=ToolboxOpts(is_show=True),
  48. visualmap_opts=VisualMapOpts(is_show=True)
  49. )
  50. # 调用render方法,生成图标
  51. line.render()
  52. os.system("render.html")
  53. # 关闭文件对象
  54. f_us.close()
  55. f_jp.close()
  56. f_jp.close()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/851569
推荐阅读
相关标签
  

闽ICP备14008679号