Python-数据可视化(笔记)

1、json数据格式

(1)什么是json

·一种轻量级的数据交互格式。可以按照json指定格式去组织和封装数据

·本质上是一个带有特定格式的字符串

·主要功能:json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互

(2)json有什么用

各种编程语言存储数据的容器各不相同,在python中有字典dict这样的格式,而其他语言可能没有对应的字典。为了能让不同的语言能够互相传递数据,JSON就是一种非常良好的中转数据格式

(3)json格式化数据转化

通过json.dumps(data)方法将python数据转化为json数据

通过json.loads(data)方法将json数据转化为python数据

a.   python数据转换为json数据

json的数据格式要么为字典,要么是列表

import json

# 准备符合json格式要求的python数据

data = [{"name":"Angle","age":18},{"name":"An","age":20},{"name":"Bob","age":22}]

#通过json.dumps(data)方法将python数据转化为json数据

data = json.dumps(data)

print(type(data))

由运行结果可以看出,json数据类型为字符串类型。

如果字典中含有汉字,则汉字输出为Unicode字符形式。如果想将内容正确展示,则执行下面代码

data_str = json.dumps(data,ensure_ascii=False) # 表示不用ASCll转换,直接显示内容

b.  json数据转换为python数据类型

# 将json数据转换成python数据类型

s = '[{"name": "Angle", "age": 18}, {"name": "An", "age": 20}, {"name": "Bob", "age": 22}]'

data_list = json.loads(s)

print(type(data_list))

print(data_list)

2、pyecharts模块(快速入门)

官网:pyecharts - A Python Echarts Plotting Library built with love.

画廊:Document

画廊为我们提供了图表的相关代码

(1)构建基础折线图

 
# 导入包,导Line功能构建折线图对象
from pyecharts.charts import Line
# 得到折线图对象
line = Line()
# 添加x轴数据
line.add_xaxis(["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"])
# 添加y轴数据
line.add_yaxis("Series A", [15, 20, 45, 37, 43, 27, 33])
# 生成图表
line.render()

运行结果图像变成render.html文件,网页文件。

(2)pyecharts配置选项

a) 全局配置选项

配置图表的标题,配置图例,配置鼠标移动效果,配置工具栏等。

·  set_global_opts方法

本例仅设置了工具箱,标题,视觉映射等全局配置项,详细信息可查看pyecharts官网

# 导入包,导Line功能构建折线图对象
from pyecharts.charts import Line
from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts
# 得到折线图对象
line = Line()
# 添加x轴数据
line.add_xaxis(["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"])
# 添加y轴数据
line.add_yaxis("Series A", [15, 20, 45, 37, 43, 27, 33])

#设置全局配置项
line.set_global_opts(title_opts=TitleOpts(title="Line-基本示例",
                                          pos_left="center",pos_bottom="1%"),
    legend_opts=LegendOpts(is_show=True),
    toolbox_opts=ToolboxOpts(is_show=True),
    visualmap_opts=VisualMapOpts(is_show=True)
    )
# 生成图表
line.render()

b) 系列配置选项

(2)地图可视化

基础地图演示

from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts

# 准备地图对象
map = Map()
#准备数据 (注意要加上省和市,不然地图上无法显示数值)
data = [

    ("北京市", 100),
    ("上海市", 60),
    ("广州省", 70),
    ("成都市", 90),  
    ("重庆市", 40),
    ("武汉市", 80),
    ("杭州市", 70),
    ("江苏省", 50),
    ("山东省", 6),
]

# 添加数据
map.add("测试地图",data,"china")   # "china"表示显示中国地图

# 设置全局选项
map.set_global_opts(
    visualmap_opts=VisualMapOpts(
        is_show=True,
        is_piecewise=True,   # 手动校正视觉映像范围
        pieces=[
            {"min": 1, "max": 9, "label":"1-9人","color":"#CCFFFF"},
            {"min": 10, "max": 99, "label":"10-99人","color":"#FFFF99"},
            {"min": 100, "max": 499, "label":"99-499人","color":"#FF9966"}
               ])
)
# 绘图
map.render()

运行结果图:

 (3)动态柱状图

3.1 基础柱状图

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

# 构建柱状图对象
bar = Bar()

# 添加x轴数据
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])

# 添加y轴数据
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
bar.add_yaxis("商家B", [15, 6, 45, 20, 65, 80])

# 绘图
bar.render("bar_chart.html")

在 bar.render()代码的上方加入如下语句,可以实现x和y轴的反转

# 反转x、y轴
bar.reversal_axis()

 让数值在右侧显示

# 添加y轴数据
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90],label_opts=LabelOpts(position="right")) # 显示数值在右侧
bar.add_yaxis("商家B", [15, 6, 45, 20, 65, 80],label_opts=LabelOpts(position="right"))

3.2 基础时间线柱状图

时间线就是在x轴上提供非常多的点,每一个点都是一个完整的图表

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

bar1 = Bar()
bar1.add_xaxis(["中国","美国","英国"])
bar1.add_yaxis("GDP",[12,23,34],label_opts=LabelOpts(position="right"))
bar1.reversal_axis()


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

bar3 = Bar()
bar3.add_xaxis(["中国","美国","英国"])
bar3.add_yaxis("GDP",[70,50,40],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=500,   # 自动播放的时间间隔
                    is_timeline_show=True, # 是否在自动播放的时候,显示时间线
                    is_auto_play=True,     # 是否自动播放
                    is_loop_play=True      # 是否循环自动播放
                    )

# 绘图(是用时间线对象绘图,而不是bar对象)
timeline.render("基础时间线柱状图.html")

3、数据处理

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

第一步:可通过懒人工具-手机APP工具下载-手机软件下载大全 - 173软件站网站先将待处理的json数据格式化查看层级关系。

第二步:去掉不合JSON规范的开头和结尾

第三步:JSON转字典

第四步:提取需要的数据

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值