今天给大家带来的是Python综合实战开发的数据可视化操作
通过python实现对数据的分析、可视化
前期准备工作:Python可视化准备工作
前期模块安装等前期基础的准备工作大家可以看我之前的文章讲解,有问题可以私信或评论区联系我
1. 基础的柱状图开发学习
1.1 基础文档演示
from pyecharts import options as opts from pyecharts.charts import Bar from pyecharts.faker import Faker c = ( Bar() .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values()) .add_yaxis("商家B", Faker.values()) .set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题")) .render("bar_base.html") )
代码运行效果:
1.2 基础实践
from pyecharts.charts import Bar from pyecharts.options import LabelOpts # 使用Bar构建基础柱状图 bar = Bar() # 添加x轴的数据 bar.add_xaxis(["中国", "美国", "英国"]) # 添加y轴数据 bar.add_yaxis("GDP", [30, 20, 10], label_opts=LabelOpts(position="right")) # 反转x和y轴 bar.reversal_axis() # 绘图 bar.render("基础柱状图.html")
代码运行效果:
2. 实际开发尝试
2.1 以时间线为基准的柱状图
from pyecharts.charts import Bar, Timeline from pyecharts.options import LabelOpts from pyecharts.globals import ThemeType bar1 = Bar() bar1.add_xaxis(["中国", "美国", "英国"]) bar1.add_yaxis("GDP", [30, 30, 20], label_opts=LabelOpts(position="right")) bar1.reversal_axis() bar2 = Bar() bar2.add_xaxis(["中国", "美国", "英国"]) bar2.add_yaxis("GDP", [50, 50, 50], label_opts=LabelOpts(position="right")) bar2.reversal_axis() bar3 = Bar() bar3.add_xaxis(["中国", "美国", "英国"]) bar3.add_yaxis("GDP", [70, 60, 60], label_opts=LabelOpts(position="right")) bar3.reversal_axis() # 构建时间线对象 timeline = Timeline({"theme": ThemeType.LIGHT}) # 在时间线内添加柱状图对象 timeline.add(bar1, "点1") timeline.add(bar2, "点2") timeline.add(bar3, "点3") # 自动播放设置 timeline.add_schema( play_interval=1000, is_timeline_show=True, is_auto_play=True, is_loop_play=True ) # 绘图是用时间线对象绘图,而不是bar对象了 timeline.render("基础时间线柱状图.html")
代码运行展示:
演示视频:
Python数据可视化-基于时间线的柱状图开发
2.2 动态柱状图开发
from pyecharts.charts import Bar, Timeline from pyecharts.options import * from pyecharts.globals import ThemeType # 读取数据 f = open("D:\全球GDP数据1960-2019.csv", "r", encoding="GB2312") data_lines = f.readlines() # 关闭文件 f.close() # 删除第一条数据 data_lines.pop(0) # 将数据转换为字典存储,格式为: # { 年份: [ [国家, gdp], [国家,gdp], ...... ], 年份: [ [国家, gdp], [国家,gdp], ...... ], ...... } # { 1960: [ [美国, 123], [中国,321], ...... ], 1961: [ [美国, 123], [中国,321], ...... ], ...... } # 先定义一个字典对象 data_dict = {} for line in data_lines: year = int(line.split(",")[0]) # 年份 country = line.split(",")[1] # 国家 gdp = float(line.split(",")[2]) # gdp数据 # 如何判断字典里面有没有指定的key呢? try: data_dict[year].append([country, gdp]) except KeyError: data_dict[year] = [] data_dict[year].append([country, gdp]) # print(data_dict[1960]) # 创建时间线对象 timeline = Timeline({"theme": ThemeType.LIGHT}) # 排序年份 sorted_year_list = sorted(data_dict.keys()) for year in sorted_year_list: data_dict[year].sort(key=lambda element: element[1], reverse=True) # 取出本年份前8名的国家 year_data = data_dict[year][0:8] x_data = [] y_data = [] for country_gdp in year_data: x_data.append(country_gdp[0]) # x轴添加国家 y_data.append(country_gdp[1] / 100000000) # y轴添加gdp数据 # 构建柱状图 bar = Bar() x_data.reverse() y_data.reverse() bar.add_xaxis(x_data) bar.add_yaxis("GDP(亿)", y_data, label_opts=LabelOpts(position="right")) # 反转x轴和y轴 bar.reversal_axis() # 设置每一年的图表的标题 bar.set_global_opts( title_opts=TitleOpts(title=f"{year}年全球前8GDP数据") ) timeline.add(bar, str(year)) # for循环每一年的数据,基于每一年的数据,创建每一年的bar对象 # 在for中,将每一年的bar对象添加到时间线中 # 设置时间线自动播放 timeline.add_schema( play_interval=1000, is_timeline_show=True, is_auto_play=True, is_loop_play=False ) # 绘图 timeline.render("1960-2019全球GDP前8国家.html")
代码运行展示:
结束语
连续几天给大家更新python可视化的开发,其实这些都是基础的开发案例
希望对大家有所帮助,当然欢迎大家前来学习交流
后续继续更新python大数据相关学习笔记