python数据分析中数据可视化简单入门

1.折线图表

首先引入相关包pyecharts,如果没下载可以先下载

pip install pyecharts

from pyecharts.charts import Line


line = Line()
# 添加x轴
line.add_xaxis(['呱了个呱','羊村','牟多','蜂地','喵帕斯'])
# 添加y轴
line.add_yaxis("GDP",['50','30','40','34','63','22'])

# 生成图表
line.render()

程序运行,在项目根目录生成了一个render.html文件,打开它,就能看到表格了

接下来再学习一些常用的全局设置参数

引入新的包

from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts,LabelOpts

在line.render()生成表格之前配置全局配置才能生效

# 设置全局变量
line.set_global_opts(
    title_opts=TitleOpts(title="该图表为GDP展示",pos_left="center",pos_bottom="1%"), #设置标题,居中,并置于距离底部1%的位置
    legend_opts=LegendOpts(is_show=True),   #似乎是数据线条的分类
    toolbox_opts=ToolboxOpts(is_show=True),     #工具箱设置,True为打开
    visualmap_opts=VisualMapOpts(is_show=True)      #虚拟图例设置,True为打开
)

运行结果:

2.地图数据可视化

老规矩一样需要引入包

from pyecharts.charts import Map

# 定义地图对象
map = Map()

# 配置地图的数据(省市是否需要在不同版本的python下要求不一样,建议加上省市)
data = [("北京市",199),
        ("上海市",344),
        ("湖南省",1255),
        ("台湾省",341),
        ("广东省",5234),
        ("海南省",242),
        ("江苏省",3548),
        ("福建省",5872),
        ("湖北省",2345),]

# 添加数据
map.add("测试地图",data,"china")

map.render()

其中map.add()方法下,第一个参数是表格的名称,第二个参数是数据源,第三个则是使用哪国地图,默认是china(必须要求和数据源给的省市要对的上,例如如果你不写china,而改成其他国家是不会生成地图的,另外国家名也必须以小写字母开头,或者你还可以写成省,就会变成省单位的地图,当然,数据源也需要修改)

运行结果,地图可以放大,这样文字看起来就不会过于拥挤,下图为原始模样,可以看到,将鼠标置于湖南省上悬浮,可以看到对应的参数

当然这样的图表并不能很好地呈现数据,接下来对其进行一些全局配置,使其能够变成给人类能方便阅读的模样

老规矩引入包,将全局配置写在map.render()前才能生效

from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts,LabelOpts
# 设置全局选项
map.set_global_opts(
        title_opts=TitleOpts(title="测试数据",is_show=True),
        visualmap_opts=VisualMapOpts(
                is_show=True,
                is_piecewise=True, #开启自定义校准数据样式
                pieces=[
                        {"min":0,"max":300,"label":"0-100","color":"#CCFFFF"},
                        {"min":301,"max":500,"label":"301-500","color":"#4EEE94"},
                        {"min":501,"max":1000,"label":"501-1000","color":"#AFEEEE"},
                        {"min":1001,"max":3000,"label":"1001-3000","color":"#FFD700"},
                        {"min":3001,"max":10000,"label":"3001-10000","color":"#FF3030"},
                ])
)

设置中设置了图表标题,图例设置为开启,并进一步对图例进行自定义设置(键值对)

“min”代表最小值,“max”代表最大值(当数据在这区间内,就会执行后面的效果,比如说定义的color)

“label”表示图例的标签,是给人看的,下图左下角那个就是label模块

“color”则表示处于这个数据区间的改用什么颜色来填充

运行结果,这样至少好看了点

3.柱状图

3.1常规柱状图

老规矩,导包

from pyecharts.charts import Bar

其他的跟折线图基本没大有差异

from pyecharts.charts import Bar

# 创建表格对象
bar = Bar()

# 定义x,y轴数据
bar.add_xaxis(['羊村','喵帕斯','牟多'])
bar.add_yaxis("GDP",[324,634,425])

# 将x,y轴数据反转
bar.reversal_axis()

# 创建表格
bar.render()

运行结果:

3.1基于时间线柱状图

导包

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

额外引入了主题包,不需要的可以不用导入

跟基础柱状图差不多,就是生成了多张表,然后通过时间轴来播放

from pyecharts.charts import Bar,Timeline
from pyecharts.globals import ThemeType
from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts,LabelOpts

# 创建表格对象1
bar1 = Bar()
bar1.add_xaxis(['羊村','喵帕斯','牟多'])
bar1.add_yaxis("GDP",[324,634,425],label_opts=LabelOpts(position="right"))
bar1.reversal_axis()
# 创建表格对象2
bar2 = Bar()
bar2.add_xaxis(['羊村','喵帕斯','牟多'])
bar2.add_yaxis("GDP",[673,823,729],label_opts=LabelOpts(position="right"))
bar2.reversal_axis()
# 创建表格对象3
bar3 = Bar()
bar3.add_xaxis(['羊村','喵帕斯','牟多'])
bar3.add_yaxis("GDP",[958,1123,1735],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
)
# 通过时间线来制作表格,而不再是bar123对象
timeLine.render("时间线柱状图.html")

add_schema()方法参数的意思是:

play_interval=1000,     #自动播放时间间隔,单位毫秒
is_timeline_show=True,     #是否显示时间线
is_auto_play=True,        #是否自动播放
is_loop_play=True        #是否循环播放

主题参数:



练习——绘制1960年至2019年世界各国GDP前八名柱状动图

太难了,我自己都搞不懂,直接上代码吧,消化了再做解析

以下是csv部分数据

from pyecharts.charts import Bar,Timeline
from pyecharts.options import LabelOpts,global_options,TitleOpts
from pyecharts.globals import ThemeType

f = open("data/1960-2019全球GDP数据.csv",encoding="GB2312")
data_line = f.readlines()
# 删除csv文件中第一行无用内容
data_line.pop(0)

# 定义字典对象
data_dict = {}
timeLine = Timeline({"theme":ThemeType.LIGHT})
#从下面开始降回比较难以理解
for line in data_line:
    year = int(line.split(",")[0])
    country = str(line.split(",")[1])
    gdp = float(line.split(",")[2])
    #判断字典中key是否是空的(因为一开始字典里是没有key的,如果强行获取key会报错)
    try:
        data_dict[year].append([country,gdp])
    except KeyError:
        data_dict[year] = []
        data_dict[year].append([country,gdp])

# sorted_year_list = sorted(data_dict.keys())
# print(type(sorted_year_list))
# print(sorted_year_list)
# print(type(data_dict.keys()))
# print(data_dict.keys())
for year in data_dict.keys():
    data_dict[year].sort(key=lambda element: element[1],reverse=True)
    #取出本年度前八的国家
    year_data = data_dict[year][0:8]
    # 定义x,y轴空列表
    x_data = []
    y_data = []
    # 将数据存入xy轴列表中
    for country_gdp in year_data:
        x_data.append(country_gdp[0])
        y_data.append(country_gdp[1]/1000000000)    #单位是亿,所以除一下
    bar = Bar()
    # 数据进行反转,如果不翻转,GDP最大的会出现在底部而不是顶上第一条
    x_data.reverse()
    y_data.reverse()
    bar.add_xaxis(x_data)
    bar.add_yaxis("GDP(亿)",y_data,label_opts=LabelOpts(position="right"))   #原y轴数据以及单位说明,并设置数据放置在柱子右侧
    # 设置每年的标题
    bar.set_global_opts(
        title_opts=TitleOpts(title=f"第{year}年GDP排名前八情况",is_show=True,pos_left=True)
    )
    # 将x,y轴进行反转,令GPD数值放到x轴,国家参数放到y轴去
    bar.reversal_axis()
    # 给时间轴添加节点名称,每个节点代表一个年份表格
    timeLine.add(bar,str(year))
# 柱状图自动播放设置
timeLine.add_schema(
    is_loop_play=True,
    is_timeline_show=True,
    is_auto_play=True,
    play_interval=500
)
timeLine.render("1960-2019年全球GDP前八柱状图.html")
f.close()

————————————————————————————————

以上内容源自黑马程序员python基础课程学习笔记,仅供学习与参考

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/593323.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Jrebel 最新的 2023.4 、 2024.1 激活方法

Idea Jrebel 插件安装 在线激活 (推荐) 访问: https://www.jpy.wang/page/jrebel.html 在jrebel激活的时候填写相应的地址

逻辑漏洞:修改Response状态值导致的逻辑漏洞

目录 1、什么是respone状态值? 2、利用原理 3、PHPYUN人才招聘系统靶场演示 今天还是继续学习逻辑漏洞相关的知识,今天的主题是“修改Response状态值导致的逻辑漏洞”,今天的内容还是参考别的大佬总结好的,我只是在这里进行学习…

Linux系统配置JAVA环境

一、jar包下载 官网:https://www.oracle.com/java/technologies/downloads 二、文件上传 上传到linux服务器 解压 下面是解压的路径 三、修改profile文件 修改etc下的profile文件,添加以下内容 vim /etc/profileexport JAVA_HOME/root/java/jdk-17.0.11 expo…

ttkbootstrap界面美化系列之Meter(六)

Meter是计量表控件,在大数据统计类的界面设计中使用较多,本文将介绍ttk中的Meter控件 一:Meter接口 print(help(ttk.Meter)) Help on class Meter in module ttkbootstrap.widgets:class Meter(tkinter.ttk.Frame)| Meter(masterNone, bo…

半监督节点分类:标签传播和消息传递

基础概念回顾 传统图机器学习的特征工程——节点层面,连接层面,全图层面 节点层面:信用卡欺诈 连接层面:推荐可能认识的人 全图层面:预测分子结构 半监督节点分类 半监督节点分类:用已知标签节点预测未…

推荐书单|提升境界、思维能力

1、《别做正常的傻瓜》 豆瓣评分:8.1 通过揭示人们在日常生活中常见的非理性行为,引导读者认识并克服这些行为,从而做出更明智的决策。 2、《活法》 豆瓣评分:8.1 稻盛和夫分享其人生哲学和经营哲学的著作,强调了正确…

【MATLAB】解决不同版本MATLAB出现中文乱码的问题

解决不同版本MATLAB出现中文乱码的问题 方法1:更改保存类型为GBK方法2:记事本打开方法3:Notepad参考 低版本matlab打开高版本Matlab的.m文件时,出现中文乱码问题。比如下图: 出现原因为: 编码格式不统一问…

深度学习之基于Unet肺部CT图像分割项目

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 肺部CT图像分割在医学诊断中占据重要地位,它有助于医生快速、准确地识别和分析肺部病变。…

关于 Vue.js 双向数据绑定基本实现认知

写在前面 很早的一篇博客,整理了部分,蹭假期整理完博文内容涉及:双向数据绑定 实现方式简单介绍基于发布订阅、数据劫持的双向数据绑定两种不同实现(ES5/ES6) Demo,以及代码简单分析Object.defineProperty && Proxy API 介绍以及特性…

如何配置X86应用程序启用大地址模式(将用户态虚拟内存从2GB扩充到3GB),以解决用户态虚拟内存不够用问题?(项目实战案例解析)

目录 1、概述 2、为什么不直接将程序做成64位的? 3、进程内存不足导致程序发生闪退的案例分析 3.1、问题说明 3.2、将Windbg附加到程序进程上进行动态调试 3.3、动态调试的Windbg感知到了中断,中断在DebugBreak函数调用上 3.4、malloc或new失败的…

企业微信主体能不能修改?

企业微信变更主体有什么作用?当我们的企业因为各种原因需要注销或已经注销,或者运营变更等情况,企业微信无法继续使用原主体继续使用时,可以申请企业主体变更,变更为新的主体。企业微信变更主体的条件有哪些&#xff1…

Java 三大特性之继承

目录 一、为什么需要继承? 二、继承概念 三、继承的语法 四、子类访问父类成员 五、super关键字 六、继承关系下的构造方法 七、继承关系下的初始化 八、protected关键字 九、继承的三种方式 十、final关键字 十一、继承和组合 一、为什么需要继承&#…

五一玩狗“丧志”记

我天生喜欢狗狗。五一来到媳妇老家这几天,只要有机会我都要给一个只叫“瘦瘦”的狗狗多攒一些吃的。 它是一条看家狗,有大人膝盖那么高八十厘米那么长。通体毛色以黄黑为主,少许白色主要集中在爪子和下巴。两耳直挺挺尖尖的竖立着&#xff0c…

mac通过termius连接Linux服务器

mac上安装 linux系统 如果有 linux服务器账号密码,那么上一步可忽略; 比如:直接连接阿里云或腾讯云账号 1. 安装termius 链接: https://pan.baidu.com/s/1iYsZPZThPizxqtkLPT89-Q?pwdbw6j 提取码: bw6j 官网 Termius - SSH platform for …

CNN实现fashion_mnist数据集分类(tensorflow)

1、查看tensorflow版本 import tensorflow as tfprint(Tensorflow Version:{}.format(tf.__version__)) print(tf.config.list_physical_devices())2、加载fashion_mnist数据与预处理 import numpy as np (train_images,train_labels),(test_images,test_labels) tf.keras.d…

[数据结构]————排序总结——插入排序(直接排序和希尔排序)—选择排序(选择排序和堆排序)-交换排序(冒泡排序和快速排序)—归并排序(归并排序)

文章涉及具体代码gitee: 登录 - Gitee.com 目录 1.插入排序 1.直接插入排序 总结 2.希尔排序 总结 2.选择排序 1.选择排序 ​编辑 总结 2.堆排序 总结 3.交换排序 1.冒泡排序 总结 2.快速排序 总结 4.归并排序 总结 5.总的分析总结 1.插入排…

抖音小风车一键跳转企业微信如何实现

我们在做抖音直播时,都喜欢挂上小风车去做转化,有的直播间小风车可以直接跳转到微信,这是怎么做到的呢?现在把这个经验给大家分享下: 首先我们需要先理解抖音直播间小风车是什么? 抖音小风车实际是一张直播…

c语言:打印任意行数的菱形

例如&#xff1a;以下图片形式 #include <stdio.h> int main() {int line 0;scanf_s("%d", &line);int i 0;//打印上半部分for (i 0; i < line; i){//打印空格数int j 0;for (j 0; j < line - 1 - i; j){printf(" ");}//打印*数量for…

内核中常用宏定义| container_of

文章目录 前言container_of函数介绍container_of函数实现container_of函数解析offsetof的使用container_of的使用结语 前言 前两篇我们写到内核中两种C语言高级语法__attribute__, __read_mostly。本篇写内核中另外一种常用宏定义之container_of container_of函数介绍 conta…

高级事件.

高级事件 1. 注册事件&#xff08;addEventListener)2.删除事件(removeEventListener&#xff09;3.DOM事件流4.事件对象及其方法&#xff08;当形参来看&#xff09;5.阻止默认事件/冒泡6.事件委托7.鼠标事件&#xff08;禁止右键/选中文字)8.鼠标事件对象8.常用键盘事件9.键盘…