首页 > 编程语言 >python数据可视化(5)——绘制饼图

python数据可视化(5)——绘制饼图

时间:2024-07-13 17:29:53浏览次数:16  
标签:01 python pie 中雨 df 可视化 雷阵雨 绘制 多云

课程学习来源:b站up:【蚂蚁学python】
【课程链接:【【数据可视化】Python数据图表可视化入门到实战】
【课程资料链接:【链接】】

Python绘制饼图分析北京天气

饼图,是一个划分为几个扇形的圆形统计图表,能够直接以图形的方式直接显示各个组成部分所占比例

目的:查看2019年北京天气数据,使用饼图查看天气、风向、空气质量的数据对比

1.编写函数,创建一个pyecharts饼图对象

from pyecharts import options as opts
from pyecharts.charts import Pie 
def create_pie(datas, title) -> Pie:
    """
    创建饼图对象
    @param datas:数据,形式为[('晴',115), ('多云',78), ('晴转多云',39)]
    @param title:图表的标题
    """
    pie = Pie()
    pie.add("", datas)
    pie.set_global_opts( # 设置全局参数
        title_opts = opts.TitleOpts(title = title), # 图标标题
        legend_opts = opts.LegendOpts(pos_right = "right")# 图标标签放在右侧
    )
    pie.set_series_opts(label_opts = opts.LabelOpts(formatter = "{b}: {c}: {d}%"))
    # b:名称
    # c:数量
    # d:百分比
    return pie

2.读取北京2019天气数据

import pandas as pd

df = pd.read_csv("../DATA_POOL/PY_DATA/ant-learn-visualization-master/datas/beijing_tianqi/beijing_tianqi_2019.csv")

df.head(5)
ymdbWenduyWendutianqifengxiangfengliaqiaqiInfoaqiLevel
02019-01-011℃-10℃晴~多云西北风1级562
12019-01-021℃-9℃多云东北风1级602
22019-01-032℃-7℃东北风1级165中度污染4
32019-01-042℃-7℃西北风2级501
42019-01-050℃-8℃多云东北风2级291

3.绘制饼图查看天气类型对比

df_tianqi = df.groupby("tianqi").size().sort_values(ascending = False)
# Flase表示递增为false,即选择递减
# 按照天气进行分组
df_tianqi # series
tianqi
晴         115
多云         78
晴~多云       39
多云~晴       34
小雨~多云      11
多云~雷阵雨     10
霾           8
多云~小雨       7
雷阵雨~多云      7
雷阵雨         7
阴~多云        5
多云~阴        4
小雨          4
雷阵雨~中雨      4
小雪~多云       4
阴~小雨        3
雷阵雨~晴       2
雷阵雨~小雨      2
霾~多云        2
中雨~多云       2
阴           2
中雨~小雨       2
多云~中雨       2
中雨~雷阵雨      2
阴~中雨        1
晴~霾         1
小雪          1
小雨~阴        1
小雨~晴        1
多云~中雪       1
雾~晴         1
霾~晴         1
霾~雾         1
dtype: int64
datas = list(zip(df_tianqi.index.to_list(), df_tianqi.to_list()))
# zip可以拼接两个list,形成一个二元组list
datas
[('晴', 115),
 ('多云', 78),
 ('晴~多云', 39),
 ('多云~晴', 34),
 ('小雨~多云', 11),
 ('多云~雷阵雨', 10),
 ('霾', 8),
 ('多云~小雨', 7),
 ('雷阵雨~多云', 7),
 ('雷阵雨', 7),
 ('阴~多云', 5),
 ('多云~阴', 4),
 ('小雨', 4),
 ('雷阵雨~中雨', 4),
 ('小雪~多云', 4),
 ('阴~小雨', 3),
 ('雷阵雨~晴', 2),
 ('雷阵雨~小雨', 2),
 ('霾~多云', 2),
 ('中雨~多云', 2),
 ('阴', 2),
 ('中雨~小雨', 2),
 ('多云~中雨', 2),
 ('中雨~雷阵雨', 2),
 ('阴~中雨', 1),
 ('晴~霾', 1),
 ('小雪', 1),
 ('小雨~阴', 1),
 ('小雨~晴', 1),
 ('多云~中雪', 1),
 ('雾~晴', 1),
 ('霾~晴', 1),
 ('霾~雾', 1)]
pie = create_pie(datas, "饼图=-天气对比")

from IPython.display import HTML

# 同上,读取 HTML 文件内容
# bar.render()的值是一个路径,以字符串形式表示
with open(pie.render(), 'r', encoding='utf-8') as file:
    html_content = file.read()

# 直接在 JupyterLab 中渲染 HTML
HTML(html_content)

在这里插入图片描述

Awesome-pyecharts

4.绘制饼图查看风向数据比例对比

df.head()
ymdbWenduyWendutianqifengxiangfengliaqiaqiInfoaqiLevel
02019-01-011℃-10℃晴~多云西北风1级562
12019-01-021℃-9℃多云东北风1级602
22019-01-032℃-7℃东北风1级165中度污染4
32019-01-042℃-7℃西北风2级501
42019-01-050℃-8℃多云东北风2级291
df_fengxiang = df.groupby("fengxiang").size().sort_values(ascending = False)
datas = list(zip(df_fengxiang.index.to_list(), df_fengxiang.to_list()))
pie = create_pie(datas, "饼图-风向")

from IPython.display import HTML

# 同上,读取 HTML 文件内容
# bar.render()的值是一个路径,以字符串形式表示
with open(pie.render(), 'r', encoding='utf-8') as file:
    html_content = file.read()

# 直接在 JupyterLab 中渲染 HTML
HTML(html_content)

在这里插入图片描述

Awesome-pyecharts

5.绘制饼图查看空气质量对比

df.head()
ymdbWenduyWendutianqifengxiangfengliaqiaqiInfoaqiLevel
02019-01-011℃-10℃晴~多云西北风1级562
12019-01-021℃-9℃多云东北风1级602
22019-01-032℃-7℃东北风1级165中度污染4
32019-01-042℃-7℃西北风2级501
42019-01-050℃-8℃多云东北风2级291
df_aqiInfo = df.groupby("aqiInfo").size().sort_values(ascending=False)
datas = list(zip(df_aqiInfo.index.to_list(), df_aqiInfo.to_list()))
pie = create_pie(datas, "饼图-空气质量")

from IPython.display import HTML

# 同上,读取 HTML 文件内容
# bar.render()的值是一个路径,以字符串形式表示
with open(pie.render(), 'r', encoding='utf-8') as file:
    html_content = file.read()

# 直接在 JupyterLab 中渲染 HTML
HTML(html_content)

在这里插入图片描述

Awesome-pyecharts

标签:01,python,pie,中雨,df,可视化,雷阵雨,绘制,多云
From: https://blog.csdn.net/qq_48035645/article/details/140403139

相关文章

  • Python数据容器(dict字典、set集合)
    dic字典dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。字典的创建使用大括号{}包含键值对,并用冒号:分隔键和值,形成键:值对。字典的特性唯一键:字典中的每个键都必须是唯一的。值可以取任何数据类型,如字符串,数字,元组。无序(Python......
  • Python 潮流周刊#60:Python 的包管理工具真是多啊(摘要)
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。本期周刊分享了13篇文章,13个开源项目,全文2300字。重要提醒:1、本专栏的......
  • python获取Android App性能数据(CPU、GPU、内存、电池、耗电量)
    原文链接:https://blog.csdn.net/u012089395/article/details/1266689461、原理python脚本通过os.popen()方法运行adb命令,获取性能数据,将性能数据保存在csv文件并算出均值、最大值、最小值。本脚本可测试一个app包含多个进程的场景,可以获取每个进程的性能数据。2、环境准备:2.1软......
  • python remote
    #!/usr/bin/python#-*-coding:utf-8-*-#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@auhorbyruiy####pipinstallparamiko-ihttps://pypi.tuna.tsinghua.edu.cn/simple##pipinstallpsutil-ihttps://py......
  • python paramiko remote 采集监控信息
    #!/usr/bin/python#-*-coding:utf-8-*-#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@auhorbyruiy####pipinstallparamiko-ihttps://pypi.tuna.tsinghua.edu.cn/simple##pipinstallpsutil-ihttps://py......
  • Python—学生信息管理系统(附源码)
    今天所要分享的文章是关于如何实现学生管理系统,有需要的朋友可以参考一下,希望可以帮到大家!文章目录一、开始界面实现1.定义主函数2.运用循环,获取用户需求二、函数实现各个模块功能1.添加学生信息2.展示学生信息3.查找学生信息4.删除学生信息5.退出程序三、把......
  • 基于Python酒店评论情感分析可视化系统
    专业技术开发,收藏关注不迷路文章目录一、项目介绍二、开发环境三、功能介绍四、效果图五、文章目录一、项目介绍随着电商网络经济的兴起,更多的人选择在线上预订酒店出行,电商旅游平台使得旅行者可以通过评论更加自由地选择价格和服务合意的酒店,同时也给人们提供了......
  • Python数据容器(1)--列表与元组
    数据容器在Python中,数据容器是指能够存储多个数据项(可以是不同类型的数据)的数据结构。Python提供了多种内置的数据容器类型,每种类型都有其特定的用途和特性。Python中最常用的数据容器有:List列表、Tuple元组、Dictionary字典、Set集合。本篇我们来介绍其中的List列表和Tuple......
  • 【Python】jupyter notebook平台的使用·
    目录一、安装Anaconda二、将BreadCancer.zip上传到jupyter notebook平台中三、了解BreadCancerClassifier.ipynb文件在jupyternotebook的单元格中的python代码,并运行。3.1 导入mainFun文件3.2 读入数据3.3开始训练3.4读入测试数据3.5 开始测试3.6 开始统计3......
  • 【Python】基础语法
    目录一、思考if__name__==”__main__”的意思和作用1.先执行comparenumber.py 2.再看test.py3._name_的意思4._name_的作用二、重要语法“tab”的作用1.test012.test02三、元组数据结构的创建和使用1.创建元组 2.访问元组的元素3.操作元组四、列表数......