Python-数据分析组合可视化实例图【附完整源码】

数据分析组合可视化实例图

开篇:应女朋友的要求,于是写下了这篇详细的数据可视化代码及完整注释

一:柱状图、折线图横向组合网格布局

本段代码使用了pyecharts库来创建一个包含多个图表(柱状图、折线图)和网格布局的复杂可视化。以下是关于每一行代码的详细解释:

实现效果展示:
在这里插入图片描述

# 从pyecharts库中导入options模块,并将其重命名为opts。
from pyecharts import options as opts
# 从pyecharts.charts模块中导入Bar(柱状图)、Grid(网格布局)和Line(折线图)类。
from pyecharts.charts import Bar, Grid, Line# 创建第一个柱状图(bar)
# 初始化一个Bar对象。
bar = (Bar()# 使用.add_xaxis()方法添加X轴数据,这里是月份。.add_xaxis(["{}月".format(i) for i in range(1, 13)])# 使用.add_yaxis()方法添加两组Y轴数据(蒸发量和降水量),并为它们设置不同的颜色和Y轴索引。.add_yaxis("蒸发量",[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],yaxis_index=0,color="#d14a61",).add_yaxis("降水量",[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],yaxis_index=1,color="#5793f3",)# 使用.extend_axis()方法扩展两个额外的Y轴,分别用于表示蒸发量和温度,设置它们的名称、位置、范围和样式。.extend_axis(yaxis=opts.AxisOpts(name="蒸发量",type_="value",min_=0,max_=250,position="right",axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#d14a61")),axislabel_opts=opts.LabelOpts(formatter="{value} ml"),)).extend_axis(yaxis=opts.AxisOpts(type_="value",name="温度",min_=0,max_=25,position="left",axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#675bba")),axislabel_opts=opts.LabelOpts(formatter="{value} °C"),splitline_opts=opts.SplitLineOpts(is_show=True, linestyle_opts=opts.LineStyleOpts(opacity=1)),))# 使用.set_global_opts()方法设置全局配置,包括Y轴配置、标题、提示框和图例。.set_global_opts(yaxis_opts=opts.AxisOpts(name="降水量",min_=0,max_=250,position="right",offset=80,axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#5793f3")),axislabel_opts=opts.LabelOpts(formatter="{value} ml"),),title_opts=opts.TitleOpts(title="多X/Y轴可视化示例"),tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),legend_opts=opts.LegendOpts(pos_left="25%"),)
)# 创建第一个折线图(line)
# 初始化一个Line对象。
line = (Line()# 使用.add_xaxis()方法添加X轴数据。.add_xaxis(["{}月".format(i) for i in range(1, 13)])# 使用.add_yaxis()方法添加一组Y轴数据(平均温度),并设置颜色和Y轴索引。.add_yaxis("平均温度",[2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],yaxis_index=2,color="#675bba",label_opts=opts.LabelOpts(is_show=False),)
)# 创建第二个柱状图(bar1)
# 类似于第一个柱状图的创建,但X轴和Y轴索引不同,用于在网格布局中定位。
bar1 = (Bar().add_xaxis(["{}月".format(i) for i in range(1, 13)]).add_yaxis("蒸发量 1",[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],color="#d14a61",xaxis_index=1,yaxis_index=3,).add_yaxis("降水量 2",[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],color="#5793f3",xaxis_index=1,yaxis_index=3,).extend_axis(yaxis=opts.AxisOpts(name="蒸发量",type_="value",min_=0,max_=250,position="right",axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#d14a61")),axislabel_opts=opts.LabelOpts(formatter="{value} ml"),)).extend_axis(yaxis=opts.AxisOpts(type_="value",name="温度",min_=0,max_=25,position="left",axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#675bba")),axislabel_opts=opts.LabelOpts(formatter="{value} °C"),splitline_opts=opts.SplitLineOpts(is_show=True, linestyle_opts=opts.LineStyleOpts(opacity=1)),)).set_global_opts(xaxis_opts=opts.AxisOpts(grid_index=1),yaxis_opts=opts.AxisOpts(name="降水量",min_=0,max_=250,position="right",offset=80,grid_index=1,axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#5793f3")),axislabel_opts=opts.LabelOpts(formatter="{value} ml"),),tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),legend_opts=opts.LegendOpts(pos_left="65%"),)
)# 创建第二个折线图(line1)
# 类似于第一个折线图的创建,但X轴和Y轴索引不同,用于在网格布局中定位。
line1 = (Line().add_xaxis(["{}月".format(i) for i in range(1, 13)]).add_yaxis("平均温度 1",[2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],color="#675bba",label_opts=opts.LabelOpts(is_show=False),xaxis_index=1,yaxis_index=5,)
)# 重叠图表
# 使用.overlap()方法将第一个柱状图和折线图重叠。
overlap_1 = bar.overlap(line)
# 使用.overlap()方法将第二个柱状图和折线图重叠。
overlap_2 = bar1.overlap(line1)# 创建网格布局(grid)
grid = (# 初始化一个Grid对象,并设置初始宽度和高度。Grid(init_opts=opts.InitOpts(width="1200px", height="500px"))# 使用.add()方法将第一个重叠图表添加到网格的右侧。.add(overlap_1, grid_opts=opts.GridOpts(pos_right="58%"), is_control_axis_index=True)# 使用.add()方法将第二个重叠图表添加到网格的左侧。.add(overlap_2, grid_opts=opts.GridOpts(pos_left="58%"), is_control_axis_index=True)# 使用.render()方法生成并保存HTML文件,该文件包含所有图表和网格布局的可视化。.render("重叠图表和网格.html")
)

二:散点图与折线图横向组合网格布局

本段代码展示了如何使用pyecharts库来创建并组合一个散点图和一个折线图,并将它们放置在一个网格(Grid)布局中。以下是关于每一行代码的详细解释:

实现效果展示:
在这里插入图片描述

# 导入pyecharts库中的options模块(并设置别名为opts)
from pyecharts import options as opts
# 导入Grid、Line、Scatter这三个图表类。
from pyecharts.charts import Grid, Line, Scatter# 定义了两组X轴数据(x_data_a和x_data_b)以及四组Y轴数据(y_data_a、y_data_b、y_date_c、y_date_d)。这些数据将用于创建散点图和折线图
x_data_a = ['草莓', '西瓜', '香蕉', '椰子', '蓝莓', '榴莲', '牛油果']
x_data_b = ['香菜', '蘑菇', '柿子', '黄瓜', '菠菜', '韭菜', '南瓜']
y_data_a = [10, 23, 46, 70, 54, 31, 28]
y_data_b = [15, 20, 31, 55, 35, 43, 68]
y_date_c = [23, 35, 31, 50, 54, 13, 67]
y_date_d = [56, 23, 45, 32, 12, 67, 40]# 这创建了一个散点图对象scatter
scatter = (Scatter()# 设置X轴数据为x_data_a.add_xaxis(x_data_a)# 分别添加两组Y轴数据,并设置其系列名称为“售出”和“收益”。.add_yaxis("售出", y_data_a).add_yaxis("收益", y_data_b)# 设置全局配置项,包括标题、图例位置和X轴标签的旋转角度。.set_global_opts(title_opts=opts.TitleOpts(title="蔬菜"),legend_opts=opts.LegendOpts(pos_left="20%"),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45)),)
)# 创建了一个折线图对象line
line = (Line()# 设置X轴数据为x_data_b.add_xaxis(x_data_b)# 分别添加两组Y轴数据,并设置其系列名称为“售出”和“收益”.add_yaxis("售出", y_date_c).add_yaxis("收益", y_date_d)# 设置全局配置项,包括标题、图例位置和X轴标签的旋转角度.set_global_opts(title_opts=opts.TitleOpts(title="水果", pos_right="5%"),legend_opts=opts.LegendOpts(pos_right="20%"),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45)),)
)# 这段代码创建了一个Grid对象,用于将散点图和折线图组合在一起
grid = (Grid()# 将散点图添加到网格中,并设置其位置为左侧55%的位置.add(scatter, grid_opts=opts.GridOpts(pos_left="55%"))# 将折线图添加到网格中,并设置其位置为右侧55%的位置.add(line, grid_opts=opts.GridOpts(pos_right="55%"))# 渲染图表,并将其保存为HTML文件,文件名为“散点与折线组合.html”.render("散点与折线组合.html")
)

三:柱状图、折线图竖向组合网格布局

本段代码展示了如何使用pyecharts库创建一个包含柱状图和折线图的竖向网格布局图表,并自定义了x轴和y轴的标签和数据。以下是关于每一行代码的详细解释:

实现效果展示:
在这里插入图片描述

# 导入pyecharts库中的options模块,并重命名为opts,用于设置图表的各种选项
from pyecharts import options as opts
# 导入pyecharts库中的Bar(柱状图)、Grid(网格布局)、Line(折线图)图表类
from pyecharts.charts import Bar, Grid, Line# 定义一个列表,自定义x轴标签
x_axis_data = ["西瓜", "香蕉", "蓝莓", "椰子", "榴莲", "草莓", "木瓜", "水蜜桃"]# 定义两个列表,自定义柱状图和折线图的y轴数据
bar_y_axis_data = [18, 25, 30, 44, 53, 34, 79, 56]
line_y_axis_data = [13, 30, 67, 45, 55, 67, 89, 54]# 创建一个柱状图对象,并设置其x轴标签、y轴数据(包括销售量和利润),以及全局选项(如标题)
bar = (Bar().add_xaxis(x_axis_data)  # 使用自定义的x轴标签.add_yaxis("销售量", bar_y_axis_data)  # 添加一个名为“销售量”的系列,数据为bar_y_axis_data.add_yaxis("利润", [v * 0.5 for v in bar_y_axis_data])  # 添加一个名为“利润”的系列,数据为销售量的一半.set_global_opts(title_opts=opts.TitleOpts(title="柱状图"))  # 设置全局选项,包括图表标题
)# 创建一个折线图对象,并设置其x轴标签、y轴数据(包括销售量和利润),以及全局选项(如标题和图例位置)
line = (Line().add_xaxis(x_axis_data)  # 使用自定义的x轴标签.add_yaxis("销售量", line_y_axis_data)  # 添加一个名为“销售量”的系列,数据为line_y_axis_data.add_yaxis("利润", [v * 0.5 for v in line_y_axis_data])  # 添加一个名为“利润”的系列,数据为销售量的一半.set_global_opts(title_opts=opts.TitleOpts(title="折线图", pos_top="48%"),  # 设置图表标题及其位置legend_opts=opts.LegendOpts(pos_top="48%"),  # 设置图例位置)
)# 创建一个网格布局对象,将柱状图和折线图添加到布局中,并设置它们的位置,最后渲染图表到HTML文件
grid = (Grid().add(bar, grid_opts=opts.GridOpts(pos_bottom="60%"))  # 将柱状图添加到网格布局中,并设置其位置.add(line, grid_opts=opts.GridOpts(pos_top="60%"))  # 将折线图添加到网格布局中,并设置其位置.render("柱状图和折线图的网格布局图表.html")  # 渲染图表到HTML文件
)

四:柱状图、折线图内嵌组合网格布局

本段代码展示了如何使用pyecharts库创建并保存一个包含柱状图和折线图的复合图表,通过设置不同的Y轴索引和扩展Y轴,实现了多Y轴的效果。以下是关于每一行代码的详细解释:

实现效果展示:
在这里插入图片描述

# 导入pyecharts库中的options模块和Bar, Grid, Line图表类。
from pyecharts import options as opts
from pyecharts.charts import Bar, Grid, Line
# 创建一个列表x_data,包含1到12月的字符串表示。
x_data = ["{}月".format(i) for i in range(1, 13)]
# 创建一个Bar对象,并添加X轴数据。
bar = (Bar().add_xaxis(x_data)# 添加一个名为"蒸发量"的Y轴系列,设置其数据、Y轴索引、颜色等属性。.add_yaxis("蒸发量",[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],yaxis_index=0,color="#d14a61",)#  添加一个名为"降水量"的Y轴系列,设置其数据、Y轴索引、颜色等属性。.add_yaxis("降水量",[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],yaxis_index=1,color="#5793f3",)# 扩展一个名为"蒸发量"的Y轴,设置其名称、类型、最小值、最大值、位置、轴线样式、标签格式等属性。.extend_axis(yaxis=opts.AxisOpts(name="蒸发量",type_="value",min_=0,max_=250,position="right",axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#d14a61")),axislabel_opts=opts.LabelOpts(formatter="{value} ml"),))# 扩展一个名为"温度"的Y轴,设置其名称、类型、最小值、最大值、位置、轴线样式、标签格式、分割线样式等属性。.extend_axis(yaxis=opts.AxisOpts(type_="value",name="温度",min_=0,max_=25,position="left",axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#675bba")),axislabel_opts=opts.LabelOpts(formatter="{value} °C"),splitline_opts=opts.SplitLineOpts(is_show=True, linestyle_opts=opts.LineStyleOpts(opacity=1)),)).set_global_opts(yaxis_opts=opts.AxisOpts(name="降水量",min_=0,max_=250,position="right",offset=80,axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#5793f3")),axislabel_opts=opts.LabelOpts(formatter="{value} ml"),),title_opts=opts.TitleOpts(title="多Y轴示例"),tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),)
)# 创建一个Line对象,并添加X轴数据和名为"平均温度"的Y轴系列,设置其数据、Y轴索引、颜色、标签显示等属性。
line = (Line().add_xaxis(x_data).add_yaxis("平均温度",[2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],yaxis_index=2,color="#675bba",label_opts=opts.LabelOpts(is_show=False),)
)# 将折线图line重叠到柱状图bar上。
bar.overlap(line)
# 创建一个Grid对象。
grid = Grid()
# 将bar图表添加到Grid中,并设置其位置参数,以及是否控制轴索引。
grid.add(bar, opts.GridOpts(pos_left="5%", pos_right="20%"), is_control_axis_index=True)
# 将Grid图表渲染为HTML文件,文件名为"树状与折线.html"。
grid.render("柱状与折线内嵌图.html")

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙应用更新跳转到应用市场

鸿蒙没有应用下载安装,只支持跳转到应用市场更新 gotoMarket(){try {const request: Want {parameters: {// 此处填入要加载的应用包名,例如: bundleName: "com.huawei.hmsapp.appgallery"bundleName: com.huawei.hmos.maps.app}}…

【NOI-题解】1372. 活动选择1456. 淘淘捡西瓜1485. 接水问题

文章目录 一、前言二、问题问题:1372. 活动选择问题:1456. 淘淘捡西瓜问题:1485. 接水问题 三、感谢 一、前言 本章节主要对贪心问题进行讲解,包括《1372. 活动选择》《1456. 淘淘捡西瓜》《1485. 接水问题》题目。 二、问题 问…

Debian linux安装最新版Cmake

直接sudo apt install camke不是最新版本 卸载cmake sudo apt autoremove cmake下载cmake cmake官网 最上面的是候选版本,往下滑是最新稳定版 解压(改成自己的包) tar -zxvf cmake-3.30.0-rc4.tar.gz进入解压后的文件夹 lscd cmake-3.3…

【项目实践】贪吃蛇

一、游戏效果展示二、博客目标三、使用到的知识四、Win32 API 介绍 4.1 WIn32 API4.2 控制台程序4.3 控制屏幕上的坐标COORD4.4 GetStdHandle4.5 GetConsoleCursorInfo 4.5.1 CONSOLE_CURSOR_INFO 4.6 SetConsoleCursorInfo4.7 SetConsoleCursorPosition4.8 GetAsyncKeyState 五…

Python 项目依赖离线管理 pip + requirements.txt

背景 项目研发环境不支持联网,无法通过常规 pip install 来安装依赖,此时需要在联网设备下载依赖,然后拷贝到离线设备进行本地安装。 两台设备的操作系统、Python 版本尽可能一致。 离线安装依赖 # 在联网设备上安装项目所需的依赖 # -d …

Unity射击游戏开发教程:(29)躲避敌人的子弹射击

在这篇文章中,我将介绍如何创建一个可以使玩家火力无效的敌人。创建的行为如下...... 当玩家向敌人开火时,敌人会向左或向右移动。向左或向右的移动是随机选择的,并在一段时间后停止敌人的移动。如果敌人移出屏幕,它就会绕到另一边。将一个精灵拖到画布上,将其缩小以匹配游…

03.C1W2.Sentiment Analysis with Naïve Bayes

目录 Probability and Bayes’ RuleIntroductionProbabilitiesProbability of the intersection Bayes’ RuleConditional ProbabilitiesBayes’ RuleQuiz: Bayes’ Rule Applied Nave Bayes IntroductionNave Bayes for Sentiment Analysis P ( w i ∣ c l a s s ) P(w_i|clas…

基于RK3588的GMSL、FPDLink 、VByone及MIPI等多种摄像模组,适用于车载、机器人工业图像识别领域

机器人&工业摄像头 针对机器人视觉与工业检测视觉,信迈自主研发和生产GMSL、FPDLink 、VByone及MIPI等多种摄像模组,并为不同应用场景提供多种视场角度和镜头。拥有资深的图像算法和图像ISP专家团队,能够在软件驱动层开发、ISP算法、FPG…

【C#】找不到属性集方法。get只读属性用了反射设置setValue肯定报错

欢迎来到《小5讲堂》 这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 背景 找不到属性集方法。get只读属性用了反射设置setValue肯定报错 报错…

ffmpeg下载/配置环境/测试

一、下载 1、访问FFmpeg官方网站下载页面:FFmpeg Download Page; 2、选择适合Windows的版本(将鼠标移动到windows端)。通常,你会找到“Windows builds from gyan.dev”或者“BtbN GitHub Releases”等选项&#xff0…

私域和社群的差别是什么?

社群就是拉很多人建群就可以了,但是私域不是,这里有三点不同 1、私域的用户来源,不仅仅是微信,而是基于一定的联系形成的链接,比如买了商家的货,反复购买觉得好,推荐给亲朋好友的二次开发用户&…

探讨4层代理和7层代理行为以及如何获取真实客户端IP

准备工作 实验环境 IP角色192.168.1.100客户端请求IP192.168.1.100python 启动的HTTP服务192.168.1.102nginx服务192.168.1.103haproxy 服务 HTTP服务 这是一个简单的HTTP服务,主要打印HTTP报文用于分析客户端IP #!/usr/bin/env python # coding: utf-8import …

java-数据结构与算法-02-数据结构-02-链表

文章目录 1. 概述2. 单向链表3. 单向链表(带哨兵)4. 双向链表(带哨兵)5. 环形链表(带哨兵)6. 习题E01. 反转单向链表-Leetcode 206E02. 根据值删除节点-Leetcode 203E03. 两数相加-Leetcode 2E04. 删除倒数…

C++必修:深入理解继承与虚继承

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C学习 贝蒂的主页:Betty’s blog 1. 继承的概念与定义 1.1. 继承的概念 继承(inheritance)机制是面向对象程序设计…

上位机网络通讯

目录 一 设计原型 二 后台源码 一 设计原型 二 后台源码 using System; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace 上位机网络通讯 {public partial class Form1 : Form{public Form1(){Initializ…

昇思学习打卡-5-基于Mindspore实现BERT对话情绪识别

本章节学习一个基本实践–基于Mindspore实现BERT对话情绪识别 自然语言处理任务的应用很广泛,如预训练语言模型例如问答、自然语言推理、命名实体识别与文本分类、搜索引擎优化、机器翻译、语音识别与合成、情感分析、聊天机器人与虚拟助手、文本摘要与生成、信息抽…

Windows系统安装SSH服务结合内网穿透配置公网地址远程ssh连接

前言 在当今的数字化转型时代,远程连接和管理计算机已成为日常工作中不可或缺的一部分。对于 Windows 用户而言,SSH(Secure Shell)协议提供了一种安全、高效的远程访问和命令执行方式。SSH 不仅提供了加密的通信通道,…

实验九 存储过程和触发器

题目 创建并执行一个无参数的存储过程proc_product1,通过该存储过程可以查询商品类别名称为“笔记本电脑”的商品的详细信息:包括商品编号、商品名称、品牌、库存量、单价和上架时间信息 2、创建并执行一个带输入参数的存储过程proc_product2&#xff…

(PC+WAP)高端大气的装修装潢公司网站模板

(PCWAP)高端大气的装修装潢公司网站模板PbootCMS内核开发的网站模板,该模板适用于装修公司网站、装潢公司网站等企业,当然其他行业也可以做,只需要把文字图片换成其他行业的即可;(PCWAP),同一个后台,数据即…

设计模式-代理模式和装饰者模式

二者都是结构型的设计模式. 1.代理模式 1.1定义 为其他对象提供一种代理以控制对这个对象的访问. 代理从code实现方面分为静态代理和动态代理两种; 从适用范围来看,分为远程代理,虚拟代理,保护代理,智能引用几种. 远程代理:为某个对象在不同的内存地址空间提供…