【python】数据可视化开发

这篇具有很好参考价值的文章主要介绍了【python】数据可视化开发。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

折线图

json数据格式

  • 一种轻量级的数据交互模式,可以按照JSON指定的格式去组织和封装数据
  • JSON本质上是一种带有特定格式的字符串
  • 负责不同编程语言中的数据传递和交互

python数据和json数据的相互转换

# 导入json模块

# 准备符合json格式要求的python数据
data=[{"name":"张三","age":16},{"name":"李四","age":20}]
# 通过json.dumps(data)方法把python数据转化为json数据
data=json.dumps(data,ensure_ascii=False)	# 不使用ASCII码确保中文可以正常转换
# 通过json.loads(data)方法把json数据转化为python数据
data=json.loads(data)

pyecharts模块

  • 做出数据可视化效果图
  • Echarts是由百度开源的数据可视化
  • 官方示例https://gallery.pecharts.org/#/README
pip install pyecharts

构建基础折线图

# 导包,导入Line功能构建折线图对象
from pyecharts.chart import Line

# 得到折线图对象
line=Line()
# 添加x轴数据
line.add_xaxis(["中国","美国","英国"])
# 添加y轴数据
line.add_yaxis("GDP",[30, 20, 10])
# 生成图表
line.render()

全局配置选项

set_global_opts方法

全局配置选项可以通过set_global_opts方法来进行配置(标题、图例、工具箱)。

line.set_global_opts(
	title_opts=TitleOpts("测试",pos_left="center",pos_bottom="1%"),	# 标题
	legend_opts=LegendOpts(is_show=True),	# 图例
	toolbox_opts=ToolboxOpts(is_show=True),	# 工具箱
	visualmap_opts=VisualMapOpts(is_show=True),	# 视觉映射
	tooltip_opts=TooltipOpts(is_show=True),
)

数据处理

通过json模块对数据进行处理

# 处理数据
f_us=open("D:/美国.txt","r",encoding="UTF-8")
us_data=f_us.read()
# 去掉不符合JSON规范的开头
us_data=us_data.replace("jsonp_1629344292311_69436(","")
# 去掉不符合JSON规范的结尾
us_data=us_data[:-2]
# JSON转python字典
us_dict=json.loads(us_data)
# 获取trend key
trend_data=us+dict['data'][0]['trend']
# 获取日期数据,用于x轴
x_data=trend_data['updateDate'][:314]
# 获取确诊数据,用于y轴
y_data=trend_data['list'][0]['data'][:314]
# 生成图表

完成折线图

from pyecharts.charts import Line
# 生成图表
line=Line()	#构建折线图对象
# 添加x轴数据
line.add_xaxis(us_x_data)
# 添加y轴数据
line.add_yaxis("美国确诊人数",us_y_data)
line.add_yaxis("日本确诊人数",jp_y_data)
line.add_yaxis("印度确诊人数",in_y_data)
line.render()
# 关闭文件
f_us.close()
f_jp.close()
f_in.close()

地图

# 地图可视化的基本使用
from pyecharts.charts import Map
# 准备地图对象
map=Map()
# 准备数据
data=[
	("北京",99),
	("上海",199),
	("湖南",299),
	("台湾",399)]
# 添加数据
map.add("测试地图",data,"Chiana")
# 绘图
map.render()

全国疫情可视化地图开发

import json
from pyecharts.charts import Map
from pyecharts.options import *
# 读取数据文件
f=open("D:/疫情.txt","r",encoding="UTF-8")
data=f.read()
f.close()
# 取各省数据
# 将字符串json转换为python字典
data_dict=json.loads(data)
# 从字典中取出省份的数据
province_data_list=data_dict=["areaTree"][0]["children"]
# 组装每个省份和确诊人数为元组,并各个省的数据都封装入列表内
data_list=[]
for province_data in province_data_list:
	province_name=province_data["name"]
	province_confirm=province_data["total"]["confirm"]
	data_list.append((province_name,province_confirm))
# 创建地图对象
map=Map()
# 添加数据
map.add("各省份确诊人数",data_list,"china")
# 设置全局配置,定制分段的视觉映射
map.set_global_opts(
	title_opts=TitleOpts(title="全国疫情地图"),
	visualmap_opts=VisualMapOpts(
		is_show=True,
		is_piecewise=True,
		pieces=[
			{"min":1,"max":99,"label":"1~99","color":"#CCFFFF"},
			{"min":100,"max":999,"label":"100~999","color":"#FFFF99"},
			{"min":1000,"max":4999,"label":"1000~4999","color":"#FF9966"},
			{"min":5000,"max":9999,"label":"5000~9999","color":"#FF6666"},
			{"min":10000,"max":99999,"label":"10000~99999","color":"#CC3333"},
			{"min":100000,"label":"100000+","color":"#990033"},
		]
	)
)
# 绘图
map.render("全国疫情地图.html")

柱状图

基础柱状图

from pyecharts.charts import Bar
# 构建柱状图对象
bar=Bar()
# 添加x轴数据
bar.add_xaxis(["中国","美国","英国"])
# 添加y轴数据
bar.add_yaxis("GDP",[30,20,10])
# 反转x轴和y轴
bar.reversal_axis()
# 绘图
bar.render("基础柱状图.html")

基础时间线柱状图

Timeline()时间线

from pyecharts.charts import Bar,Timeline
from pyecharts.options import *

bar1=Bar()
bar1.add_xaxis(["中国","美国","英国"])
bar1.add_yaxis("GDP",[30,20,10],label_opts=LabelOpts(position="right"))
bar1.reversal_axis()

bar2=Bar()
bar2.add_xaxis(["中国","美国","英国"])
bar2.add_yaxis("GDP",[50,30,20],label_opts=LabelOpts(position="right"))
bar2.reversal_axis()

# 创建时间线对象
timeline=Timeline()
# timeline对象添加bar柱状图
timeline.add(bar1,"2021年GDP")
timeline.add(bar2,"2022年GDP")
# 通过时间线绘图而不是bar对象
timeline.render("基础柱状图-时间线.html")

动态柱状图绘制

列表的sort方法

sorted函数可以对数据容器进行排序文章来源地址https://www.toymoban.com/news/detail-612684.html

列表.sort(key=选择排序依据的函数,reverse=True|False)
  • 参数key,要求传入一个函数,表示将列表的每一个元素都传入函数中,返回排序的依据
  • 参数reverse,是否反转排序结果
带名函数形式
# 嵌套列表要求对外层列表进行排序,依据内层列表第二个元素数字
# 无法使用sorted函数,可以使用列表的sort方法
my_list=[["a",33],["b",55],["c",11]]
# 定义排序方法
def choose_sort_key(element):
	return element[1]

my_list.sort(key=choose_sort_key,reverse=True)
print(my_list)
匿名lambda形式
my_list=[["a",33],["b",55],["c",11]]
my_list.sort(key=lambda element:element[1],reverse=True)
print(my_list)

数据处理

from pyecharts.charts import Bar,Timeline
from pyecharts.options import *
from pyecharts.globals import ThemeType
# 读取数据
f=open("D:/1960-2019全球GDP数据.csv","r",encoding="GB2312")
data_lines=f.readlines()
f.close()
# 删除第一个
data_lines.pop(0)
# 将数据转换为字典格式
data_dict={}
for line in data_lines:
	year=int(line.split(",")[0])
	country=line.split(",")[1]
	gdp=float(line.split(",")[2])
	try:	# 判断字典里有没有指定key
		data_dict[year].append([country,gdp])
	except KeyError:
		data_dict[year].append([country,gdp])

GDP动态图表绘制

# 创建时间线对象
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])
		y_data.append(country_gdp[1]/100000000)
	bar=Bar()
	x_data.reverse()
	y_data.reverse()
	bar.add_xaxis(x_data)
	bar.add_yaxis("GDP(亿)",y_data,label_opts=LabelOpts(position="right"))
	bar.reversal_axis()
	# 设置每一年的图表的标题
	bar.set_global_opts(
		title_opts=TitleOpts(title=f"{year}年全球前8GDP数据")
	timeline.add(bar,str(year))

# for循环每年的数据,创建每年bar对象
# 将每年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】数据可视化开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【python】数据可视化开发

    一种轻量级的数据交互模式,可以按照JSON指定的格式去组织和封装数据 JSON本质上是一种带有特定格式的字符串 负责不同编程语言中的数据传递和交互 python数据和json数据的相互转换 做出数据可视化效果图 Echarts是由百度开源的数据可视化 官方示例https://gallery.pecharts.org/#/R

    2024年02月15日
    浏览(39)
  • 【Python爬虫+数据分析】采集电商平台数据信息,并做可视化演示(带视频案例)

    随着电商平台的兴起,越来越多的人开始在网上购物。而对于电商平台来说,商品信息、价格、评论等数据是非常重要的。因此,抓取电商平台的商品信息、价格、评论等数据成为了一项非常有价值的工作。 接下来就让我来教你 如何使用Python编写爬虫程序,抓取电商平台的

    2024年02月11日
    浏览(50)
  • 对利用Python爬取到的房价信息做数据可视化(附完整代码)

          大家好,我是带我去滑雪,每天教你一个小技巧! 本文利用Python爬取到的房价信息做数据可视化,爬取数据的文章见: (利用Python爬取房价信息(附代码)_用python爬取房价数据_带我去滑雪的博客-CSDN博客)       所爬取的指标有小区名称、房屋位置、房屋户型、房屋面

    2024年02月02日
    浏览(34)
  • 信息管理毕设分享(含算法) python大数据房价预测与可视化系统

    # 0 简介 今天学长向大家介绍一个适合作为毕设的项目 毕设分享 python大数据房价预测与可视化系统 项目获取: https://gitee.com/sinonfin/algorithm-sharing 1.需求描述 对于数据挖掘工程师来说,有时候需要抓取地理位置信息,比如统计房子周边基础设施信息,比如医院、公交车站、写

    2024年02月03日
    浏览(33)
  • 基于SSM的大学生社团信息管理系统--99953 (免费领源码+开发文档)可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、大数据、全套文案

    随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,高校当然也不能排除在外。大学生社团信息管理系统APP是以实际运用为开发背景,运用软件工程开发方法,采用SSM技术构建的一个管理系统。整个开发过

    2024年01月23日
    浏览(41)
  • 基于python重庆招聘信息数据可视化分析全屏大屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(36)
  • 【 Python 全栈开发 - 语法基础篇 - 20 】数据可视化

    数据可视化是一种将数据转化成可视化图形的表现形式,目的是更好地展示和交流数据,从而更深层次地理解数据。 这种表现形式通常是基于图表、图形、地图和其他视觉元素,帮助人们识别和理解数据的趋势、模式和异常,以及进行更有效的决策。 数据可视化也是数据科

    2024年02月08日
    浏览(33)
  • 【11个适合毕设的Python可视化大屏】用pyecharts开发拖拽式可视化数据大屏

    你好,我是@马哥python说,一枚10年程序猿。 以下是我近期用Python开发的原创可视化数据分析大屏,非常适合毕设用,下面逐一展示:(以下是截图,实际上有动态交互效果哦) 以下大屏均为@马哥python说的个人原创,请勿转载。 以上大屏的开发技术流程如下: 1、爬虫采用

    2024年02月03日
    浏览(56)
  • 基于python四川成都招聘信息数据可视化分析全屏大屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(39)
  • python语法-数据可视化(全球GDP动态柱状图开发)

    python数据可视化(全球GDP动态柱状图开发) 开发工具:pycharm、pyecharts模块 (项目数据见文末参考内容) 效果图如下(轮播1960-2019年的柱状图): 参考内容: 项目数据(https://mp.csdn.net/mp_download/manage/download/UpDetailed) python语法-pyecharts 黑马程序员-python基础

    2024年02月08日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包