数据可视化——pyecharts库绘图

news2024/11/16 18:52:40

 目录

官方文档

使用说明: 

点击基本图表

可以点击你想要的图表

安装:

 一些例图:

柱状图:

 效果:

 折线图:

 效果:

环形图:

效果: 

 南丁格尔图(玫瑰图):

效果:

堆叠折线图:

效果:

堆叠柱状图:

 ​编辑

 拟合散点曲线图:




官方文档

使用说明: 

点击基本图表

  • 可以点击你想要的图表

  • 可以点击Demo里面有例图以及代码,可以复制下来再根据需求来改
  • 要查询图表的配置也可以到全局配置里面查找

安装:

pip install pyecharts -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

 一些例图:

这里引用的是一个全国各省份的GDP数据(需要拿来练习的可以私我拿数据~)

柱状图:

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.globals import ThemeType

# 加载数据集
data = pd.read_csv(r'D:\Dabby\Documents\数据可视化\gdp.csv',encoding='utf-8')

# 提取2016年的数据并按GDP降序排列取前10个省份
data_2016 = data[['province','2016']]
top_10_gdp = data_2016['2016'].sort_values(ascending=False).head(10)
top_10_province = data_2016.loc[top_10_gdp.index, 'province']
# 获取省份和GDP数据
provinces = top_10_province.tolist()
gdp_values = top_10_gdp.tolist()

# 使用Pyecharts绘制柱状图
init_opts=opts.InitOpts(width='1000px',height='450px',theme=ThemeType.LIGHT)
bar = (
    Bar()
    .add_xaxis(provinces)
    .add_yaxis("GDP",gdp_values)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="2016年全国排名前10的省份GDP"),
        xaxis_opts=opts.AxisOpts(name="省份"),  
        yaxis_opts=opts.AxisOpts(name="GDP(亿元)"),
    )
)
bar.render_notebook()  # 将图表保存为HTML文件

 效果:

 折线图:

from pyecharts.charts import Line
from pyecharts import options as opts
data = pd.read_csv(r'D:\Dabby\Documents\数据可视化\gdp.csv',encoding='utf-8')
data_gx=data.loc[19]
data_gx
year_gx=data_gx.index.to_list()[1:][::-1]
gdp=list(data_gx.values)[1:][::-1]
years=year_gx[:10]
line = (
    Line()
    .add_xaxis(years)
    .add_yaxis("广西GDP", gdp)  # 设置曲线光滑
    .set_global_opts(
        title_opts=opts.TitleOpts(title="广西1997年至2016年的折线图"),
        xaxis_opts=opts.AxisOpts(name="年份"),
        yaxis_opts=opts.AxisOpts(name="GDP")  # 在这里添加逗号
    )
)

line.render_notebook()

 效果:

环形图:

import matplotlib.pyplot as plt
from pyecharts import options as opts
from pyecharts.charts import Pie  # 导入 Pie 类
data = pd.read_csv(r'D:\Dabby\Documents\数据可视化\gdp.csv',encoding='utf-8')
data_2014 = data[['province', '2014']]
top_10_gdp = data_2014['2014'].sort_values(ascending=False).head(10)
top_10_province = data_2014.loc[top_10_gdp.index, 'province']
gdp = top_10_gdp.tolist()
provinces = top_10_province.tolist()

pie=Pie()
pie.add('',[list(z)for z in zip(provinces,gdp)],radius=[70, 150])
pie.set_global_opts(title_opts=opts.TitleOpts(title='2024年全国各省GDP排名前十的省份', pos_top="5%"),
    legend_opts=opts.LegendOpts(pos_bottom="5%")
                    
)
pie.set_series_opts(label_opts=opts.LabelOpts(formatter='{b}:{c}亿元({d}%)'))
pie.render_notebook()

效果: 

 南丁格尔图(玫瑰图):

import matplotlib.pyplot as plt
from pyecharts import options as opts
from pyecharts.charts import Page, Pie
data = pd.read_csv(r'D:\Dabby\Documents\数据可视化\gdp.csv',encoding='utf-8')
data_gx=data.loc[19]
#获取广西近八年GDP数据
year_gx=data_gx.index.to_list()[1:]
year_gx=year_gx[:8]
gdp_gx=list(data_gx.values)[1:][:8]

#获取江苏近八年GDP数据
data_js=data.loc[9]
year_js=data_js.index.to_list()[1:][:8]
gdp_js=list(data_js.values)[1:][:8]

# 绘制广西南丁格尔玫瑰图(area型)
guangxi_pie = (
    Pie()
    .add(
        series_name="广西近8年的GDP",  # 系列名称
        data_pair=[list(z) for z in zip(year_gx, gdp_gx)],  # 数据对,形如 [('2014', 100), ('2015', 120), ...]
        radius=[50, 200],  # 设置半径,形成南丁格尔玫瑰图
        rosetype="area",  # 设置玫瑰图类型为 area
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="广西近8年 GDP 变化"),  # 设置标题
        legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_right="2%")
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter='{b}:{c}(亿元)({d}%)'))
)

# 绘制江苏南丁格尔玫瑰图(radius型)
jiangsu_pie = (
    Pie()
    .add(
        series_name="江苏 GDP 变化",  # 系列名称
        data_pair=[list(z) for z in zip(year_js, gdp_js)],  # 数据对,形如 [('2014', 200), ('2015', 220), ...]
        radius=[50, 200],  # 设置半径,形成南丁格尔玫瑰图
        rosetype="radius",  # 设置玫瑰图类型为 radius
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="江苏近8年 GDP 变化"),  # 设置标题
        legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_right="2%")
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter='{b}:{c}(亿元)({d}%)'))
)

# 创建一个页面,并将两个图添加到页面中
page = Page()
page.add(guangxi_pie)
page.add(jiangsu_pie)

# 渲染并保存 HTML 文件
page.render_notebook()

效果:

堆叠折线图:


import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Line
from pyecharts.globals import ThemeType
from pyecharts import options as opts
data = pd.read_csv(r'D:\Dabby\Documents\数据可视化\gdp.csv')
# 截取北京的数据
data_bj = data.loc[0]
year_bj = data_bj.index.to_list()[1:]
gdp_bj = list(data_bj.values)[1:]

# 截取上海数据
data_sh = data.loc[8]
year_sh = data_sh.index.to_list()[1:]
gdp_sh = list(data_sh.values)[1:]

# 截取广东数据
data_gd = data.loc[18]
year_gd = data_gd.index.to_list()[1:]
gdp_gd = list(data_gd.values)[1:]

# 创建堆叠面积图对象
line = Line()

# 添加数据并设置堆叠属性
line.add_xaxis(year_bj)
line.add_yaxis("北京", gdp_bj, is_smooth=True, stack="stack1", areastyle_opts=opts.AreaStyleOpts(opacity=0.5))
line.add_yaxis("上海", gdp_sh, is_smooth=True, stack="stack1", areastyle_opts=opts.AreaStyleOpts(opacity=0.5))
line.add_yaxis("广东", gdp_gd, is_smooth=True, stack="stack1", areastyle_opts=opts.AreaStyleOpts(opacity=0.5))

# 设置全局配置项
line.set_global_opts(
    title_opts=opts.TitleOpts(title="北京、上海、广东历年GDP变化堆叠面积图"),
    xaxis_opts=opts.AxisOpts(type_="category", boundary_gap=False),
    yaxis_opts=opts.AxisOpts(type_="value", name="GDP(亿元)"),
    tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross")
)

# 渲染图像
line.render_notebook()

效果:

堆叠柱状图:

from pyecharts.charts import Bar
import pandas as pd
from pyecharts import options as opts
from pyecharts.globals import ThemeType

#截取广西数据
data = pd.read_csv(r'D:\Dabby\Documents\数据可视化\gdp.csv')
data_gx=data.loc[19]
year_gx=data_gx.index.to_list()[1:][::-1]
gdp_gx=list(data_gx.values)[1:][::-1]

#截取广东数据
data_gd=data.loc[18]
year_gd=data_gd.index.to_list()[1:][::-1]
gdp_gd=list(data_gd.values)[1:][::-1]


# 绘制堆叠柱状图  
bar = Bar()  # 注意:这里你可能需要导入InitOpts,但在某些版本的Pyecharts中可能不是必需的  
bar.add_xaxis(year_gx)  
# 注意:添加stack参数并将值设置为相同的字符串(例如'gdp'),以使序列堆叠  
bar.add_yaxis("广西", gdp_gx, stack="gdp")  
bar.add_yaxis("广东", gdp_gd, stack="gdp")  
  
bar.set_global_opts(  
    title_opts=opts.TitleOpts(title="近年来广西和广东的GDP趋势"),  
    xaxis_opts=opts.AxisOpts(type_="category"),  
    yaxis_opts=opts.AxisOpts(type_="value", name="GDP (亿元)"),  
    legend_opts=opts.LegendOpts(pos_left="center", pos_top="top")  
)  
bar.render_notebook()

 

 拟合散点曲线图:

mport pandas as pd
import numpy as np
from pyecharts import options as opts
from pyecharts.charts import Line
from pyecharts.charts import Scatter
from pyecharts.globals import ThemeType
data=pd.read_csv(r"D:\Dabby\Documents\数据可视化\gdp.csv",encoding='utf-8')
#截取广西数据
data_gx=data.loc[19]
year_gx=data_gx.index.to_list()[1:]
gdp_gx=list(data_gx.values)[1:]
#先绘制散点图
scatter=Scatter()
scatter.add_xaxis(year_gx)
scatter.add_yaxis("GDP",gdp_gx)
scatter.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
scatter.set_global_opts(title_opts=opts.TitleOpts(title='广西的20年gdp散点拟合曲线')) 
scatter.render_notebook()
#计算拟合三次多项式的x,y,z
year_gx_float = np.array(year_gx, dtype=float)  
gdp_gx_float = np.array(gdp_gx, dtype=float)  
poly=np.polyfit(year_gx_float,gdp_gx_float,deg=3)
#绘制拟合曲线散点图
line=Line()
line.add_xaxis(list(year_gx))  
line.add_yaxis('GDP', np.polyval(poly, year_gx_float))  
line.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
scatter.overlap(line)
scatter.render_notebook()

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

cnvd_2015_07557-redis未授权访问rce漏洞复现-vulfocus复现

1.复现环境与工具 环境是在vulfocus上面 工具:GitHub - vulhub/redis-rogue-getshell: redis 4.x/5.x master/slave getshell module 参考攻击使用方式与原理:https://vulhub.org/#/environments/redis/4-unacc/ 2.复现 需要一个外网的服务器做&…

大数据快速使用Kerberos认证集群

一、创建安全集群并登录其Manager 创建安全集群,开启“Kerberos认证“参数开关,并配置“密码“、“确认密码“参数。该密码用于登录Manager,请妥善保管。 登录MRS管理控制台页面。 单击“集群列表“,在“现有集群“列表&#xf…

Puppeteer实战案例:自动化抓取社交媒体上的媒体资源

在当今数字化时代,社交媒体已成为人们获取信息、分享生活和进行商业推广的重要平台。随着社交媒体内容的爆炸性增长,自动化抓取社交媒体上的媒体资源变得尤为重要。本文将介绍如何使用Puppeteer这一强大的自动化工具来实现这一目标。 1. Puppeteer简介 …

技术前沿 |【大模型BLIP-2的多模态训练】

大模型BLIP-2的多模态训练 一、引言二、BLIP-2模型概述三、多模态训练成本问题四、冻结预训练好的视觉语言模型参数的优势五、冻结预训练好的视觉语言模型参数的方法 一、引言 随着人工智能技术的飞速发展,大型多模态模型如BLIP-2在多个领域取得了显著的成果。然而…

人脸考勤项目实训

第一章 Python-----Anaconda安装 文章目录 第一章 Python-----Anaconda安装前言一、Anaconda是什么?二、Anaconda的前世今生二、Windows安装步骤1.官网下载2.安装步骤安装虚拟环境 总结 前言 工欲善其事必先利其器,项目第一步,安装我们的环境…

《python程序语言设计》2018版第5章第35题求完全数,解题经历,我认为的正确代码放在最后

5.35从4月开始一直到成功,此文章将所有的记录和不同阶段代码展现给大家。但是没有配图,我最后成功的代码放在了最后。 2024.04.15 05.35.01version 求完整数,这个让我突然有点蒙。我什么时候能求完整数呢?? 正因子之和…

图Transformer 推荐系统

文章目录 Graph Transformer for Recommendation摘要引言相关工作方法3.1 Graph Invariant Rationale Learning3.1.1 Graph Collaborative Rationale Discovery3.1.2 Global Topology Information Injection3.1.3 Rationale Discovery with Graph Transformer.3.1.4 Task-Adapt…

React中的 Scheduler

为什么需要调度 在 React 中,组件最终体现为 Fiber,并形成 FiberTree,Fiber 的目的是提高渲染性能,将原先的 React 渲染任务拆分为多个小的微任务,这样做的目的是可以灵活的让出主线程,可以随时打断渲染&a…

视觉大模型(VLLM)学习笔记

视觉多模态大模型(VLLM) InternVL 1.5 近日,上海人工智能实验室 OpenGVLab 团队、清华大学、商汤科技合作推出了开源多模态大语言模型项目InternVL 1.5,它不仅挑战了商业模型巨头例如 GPT-4V 的霸主地位,还让我们不禁…

如何一键拷贝PPT中的所有文字?

有时我们可能需要引用PPT的文字,但一个幻灯片一个幻灯片拷贝很是麻烦,我们想一键拷贝PPT中所有幻灯片中的内容(最近我就遇到了这个需求)。今天就来讲讲这个一键拷贝的技巧。因为大家可能会遇到同样的问题,所以在此记录…

JAVA网络编程,反射及注解知识总结

文章目录 网络编程软件架构三要素IP端口号协议UDP协议发送数据接收数据三种通信方式 TCP协议客户端服务器端三次握手四次挥手 反射获取字节码文件获取构造方法获取成员变量获取成员方法反射的作用 动态代理注解作用格式使用位置注解的原理常见注解元注解自定义注解解析注解 网络…

Elasticsearch index 设置 false,为什么还可以被检索到?

在 Elasticsearch 中,mapping 定义了索引中的字段类型及其处理方式。 近期有球友提问,为什么设置了 index: false 的字段仍能被检索。 本文将详细探讨这个问题,并引入列式存储的概念,帮助大家更好地理解 Elasticsearch 的存储和查…

一文带你轻松掌握Java数组定义和声明

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

Android JobService启动系统源码分析

以下就JobService的执行流程,系统层实现进行详解 入口点在JobScheduler.scheduler 系统层JobScheduler是个抽象类,它的实现类是JobScheduler mBinder,一看就知道这里面肯定是跨进程了。它的服务端在JobSchedulerService里面,具体 为什么请看系统服务器启动流程相关文章,…

Python | 正则表达式

?:标记?之前的字符为可选. used&#xff1f; d可有可无 *:匹配>0个重复的在*号之前的字符。 ab*c 匹配多个b &#xff1a;匹配>1个重复的号前的字符。&#xff08;至少一个&#xff09; {n,m}&#xff1a;匹配num个大括号之前的字符或字符集 &#xff08;n < num …

创新案例|创新实时零售模式,千亿时尚巨头Shein的全球扩张之路

SHEIN&#xff0c;一家估值千亿美元的快时尚电商独角兽&#xff0c;是全球增长最快的服饰平台。它通过数据和平台的双轮驱动&#xff0c;构建了全新的“实时零售”模式&#xff0c;实现了数据与商业的紧密衔接。同时&#xff0c;通过领导力和组织能力建设&#xff0c;打造了独特…

实验四、零比特插入《计算机网络》

但凡这句话有一点用的话也不至于一点用都没有。 目录 一、实验目的 二、实验内容 三、实验小结 一、实验目的 掌握零比特插入原理及方法使用任意编程语言实现零比特插入方法。 二、实验内容 掌握零比特插入原理及方法 点对点协议 PPP&#xff08;Point-to-Point Protoco…

LLVM 后端执行流程

异构计算程序工作流程 图4-1中的LLVM后端的主要功能是代码生成&#xff0c;其中包括若干指令生成分析转换pass&#xff0c;将LLVM IR 转换为特定目标架构的机器代码 LLVM 流水线结构 输入指令经过图4-2中的各个阶段&#xff0c;从最初的LLVM IR&#xff0c;逐步演化为Selectio…

市值超越苹果,英伟达的AI崛起与天润融通的数智化转型

Agent&#xff0c;开启客户服务新时代。 世界商业格局又迎来一个历史性时刻。 北京时间6月6日&#xff0c;人工智能芯片巨头英伟达&#xff08;NVDA&#xff09;收涨5.16%&#xff0c;总市值达到3.01万亿美元&#xff0c;正式超越苹果公司&#xff0c;成为仅次于微软&#xf…

UART基本定义、三种编程方式、freertos内怎么用、怎么封装

文章目录 串口基本概念串口的三种编程方式uart编程查询方式不常用、其他两个方式用的多中断方式&#xff1a;代码原理 DMA方式&#xff1a;配置DMA原理代码 效率最高的UART编程方式&#xff1a;是什么&#xff1f;操作 在freertos里面调用uart应该怎么做&#xff1f;代码 面向对…