Python数据分析-绘制图表

news2024/9/21 19:52:16

示例1:

from pyecharts.charts import Bar  # 柱状图
from pyecharts import options as opts

from pyecharts.render import make_snapshot

bar = Bar()
bar.add_xaxis(['一月', '二月', '三月', '四月', '五月'])
bar.add_yaxis("销售额", [10, 20, 15, 25, 30])



# 配置图表
bar.set_global_opts(
    title_opts=opts.TitleOpts(title="月度销售额柱状图"),
    xaxis_opts=opts.AxisOpts(name="月份"),
    yaxis_opts=opts.AxisOpts(name="销售额(万元)"),
)

# 渲染图表
bar.render("bar_chart.html")

运行结果:

如果点击销售额按钮,可动态展现柱状图。

示例2:

from pyecharts import options as opts
from pyecharts.charts import Bar
# 内置主题类型可查看 pyecharts.globals.ThemeType
from pyecharts.globals import ThemeType

# 准备数据
bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION))
    .add_xaxis(['衬衣', '羊毛衫', '西装', '裤子', '鞋子', '袜子'])
    .add_yaxis('商家A', [5, 20, 40, 30, 80, 90])
    .add_yaxis('商家B', [16, 2, 34, 34, 33, 50])
)

bar.set_global_opts(
    title_opts=opts.TitleOpts(title="月度销售额柱状图", subtitle="副标题"),
    xaxis_opts=opts.AxisOpts(name="月份"),
    yaxis_opts=opts.AxisOpts(name="销售额(万元)"),
    legend_opts=opts.LegendOpts(pos_left="center", pos_top="top"),
    toolbox_opts=opts.ToolboxOpts(),  # 工具箱配置项,用于添加一些交互工具,如保存为图片、数据视图等。
    tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
)
# 渲染图表
bar.render("themed_bar_chart图表2.html")

运行结果:

点击“商家A”或者“商家B”可单独展现,如图所示。

示例3:

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

# 读取数据
data = pd.read_csv("E_business.csv", encoding='GBK')

# 转换日期列为日期类型
data['订单日期'] = pd.to_datetime(data['订单日期'])

# 提取2019~2022年的数据
data = data[(data['订单日期'].dt.year >= 2019) & (data['订单日期'].dt.year <= 2022)]

# 对数据按地区和产品类别进行分组,并对销售额和利润额求和
grouped_data = data.groupby(['区域']).agg({'销售额': 'sum', '利润额': 'sum'}).reset_index()

# 创建柱状图
bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT, bg_color="#f0f8ff"))
    .add_xaxis(grouped_data['区域'].tolist())
    .add_yaxis("销售额", grouped_data['销售额'].tolist(), category_gap="50%")
    .add_yaxis("利润额", grouped_data['利润额'].tolist(), category_gap="50%")
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(
        title_opts=opts.TitleOpts(title="历年各区域产品销售/利润对比图", pos_left='left'),
        # xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45)),
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45), name="区域"),
        yaxis_opts=opts.AxisOpts(name="销售额和利润额"),

        legend_opts=opts.LegendOpts(pos_left="center", pos_top="top"),
        toolbox_opts=opts.ToolboxOpts(),  # 工具箱配置项,用于添加一些交互工具,如保存为图片、数据视图等。
        tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
    )
)

# 创建趋势线
line = (
    Line()
    .add_xaxis(grouped_data['区域'].tolist())
    .add_yaxis("销售额趋势线", grouped_data['销售额'].tolist(), is_smooth=True, symbol='circle')
    .add_yaxis("利润额趋势线", grouped_data['利润额'].tolist(), is_smooth=True, symbol='diamond')
)

# 合并柱状图和趋势线
bar.overlap(line)

# 渲染图表
bar.render("bar_line_chart图表3.html")

运行结果:

示例4:

import pandas as pd
import matplotlib.pyplot as plt
# import seaborn as sns

# 设置中文字体为SimHei
plt.rcParams['font.sans-serif'] = ['SimHei']

# 读取数据
data = pd.read_csv("E_business.csv", encoding='GBK')

# 转换日期列为日期类型
data['订单日期'] = pd.to_datetime(data['订单日期'])

# 提取2019~2022年的数据
data = data[(data['订单日期'].dt.year >= 2019) & (data['订单日期'].dt.year <= 2022)]

# # 绘制双柱状图
# plt.figure(figsize=(12, 8))
# sns.barplot(x='区域', y='销售额', hue='产品类别', data=data, palette='coolwarm', ci=None)
# sns.barplot(x='区域', y='利润额', hue='产品类别', data=data, palette='coolwarm', ci=None, alpha=0.5)

# 对数据按地区和产品类别进行分组,并对销售额和利润额求和
grouped_data = data.groupby(['区域']).agg({'销售额': 'sum', '利润额': 'sum'}).reset_index()

# 设置柱状图参数
bar_width = 0.35
index = grouped_data.index

# 绘制销售额柱状图
p1 = plt.bar(index, grouped_data['销售额'], bar_width, label='求和项:销售额', color='skyblue')

# 绘制利润额柱状图
p2 = plt.bar(index + bar_width, grouped_data['利润额'], bar_width, label='求和项:利润额', color='salmon')

# 显示图例
plt.legend(handles=[p1, p2], loc='upper right')

# 标记趋势线
plt.plot(index, grouped_data['销售额'], marker='o', linestyle='-', color='b')
plt.plot(index + bar_width, grouped_data['利润额'], marker='s', linestyle='--', color='r')

# 设置标题
plt.title('历年各区域产品销售/利润对比图', loc='left')

# 设置坐标轴标签
plt.xlabel('区域')
plt.ylabel('销售额和利润额')

# 显示图例
# plt.legend(title='求和项', title_fontsize='13', fontsize='11', loc='upper right')

# 填充背景色
plt.gca().set_facecolor('#f0f8ff')

# 设置刻度标签
plt.xticks(index + bar_width / 2, grouped_data['区域'])

plt.savefig('数据分析-图表4.png')

# 显示图表
plt.tight_layout()
plt.show()

运行结果:

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

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

相关文章

spring 事物使用场景说明

事务使用场景。 在某些业务场景下&#xff0c;如果一个请求中&#xff0c;需要同时写入多张表的数据。为了保证操作的原子性&#xff08;要么同时成功&#xff0c;要么同时失败&#xff09;&#xff0c;避免数据不一致的情况&#xff0c;我们一般都会用到spring事务。 确实&am…

使用Node-API进行异步任务开发

一、Node-API异步任务机制概述 Node-API异步任务开发主要用于执行耗时操作的场景中使用&#xff0c;以避免阻塞主线程&#xff0c;确保应用程序的性能和响应效率。 1、应用场景&#xff1a; 文件操作&#xff1a;读取大型文件或执行复杂的文件操作时&#xff0c;可以使用异步工…

TCP远程命令执行

目录 一. 命令集 二. 命令执行模块实现 三. 服务端模块实现 四. 服务端调用模块实现 五. 客户端模块实现 六. 效果展示 此篇教大家如何利用TCP进行远程命令执行。 一. 命令集 将值得信任的命令放进一个txt文件中&#xff0c;执行命令时&#xff0c;就去这…

英语每日一段 195

Promising economic indicators won’t instantly reverse the lingering impact of hard times for millions of families, workplace culture expert Jessica Kriegel said. “Perception and reality are sometimes aligned and sometimes not,” Kriegel told Newsweek. “…

这才是程序猿梦想的终端,赶快动手搞起来

文章目录 目标资源列表安装iTerm2安装oh-my-zsh安装颜色主题查找配置文件将配置内容复制到本地设置iTerm2 安装NERD FONTS下载字体安装设置iTerm2 安装PowerLevel10k修改.zshrc重新加载配置 安装插件下载[语法高亮](#syntaxhighlighting)下载[命令提示](#autosuggestions)配置插…

git的使用和gdb工具

1.git的使用 首先现在gitee上新建一个仓库 然后复制克隆链接到本地仓库 在本地仓库中&#xff0c;我们可以用git status查看仓库状态 我们要提交代码就是要三步 git add 文件名 git commit -m "写提交的日志" git push 将代码上传到远端仓库 然后你就完成一次提…

AIOT人工智能物联网六大场景

AIOT&#xff08;人工智能物联网&#xff09;融合了人工智能技术和物联网技术&#xff0c;实现了设备之间的智能互联和数据交互&#xff0c;在多个场景中都有广泛的应用。以下是一些主要的AIOT场景&#xff1a; 一、智能交通 智能汽车&#xff1a; 自动驾驶是AIOT在智能交通领…

tolower/toupper 函数讲解

目录 1.函数介绍 2.示例如下&#xff1a; 方源一把抓住VS2022&#xff0c;又是顷刻炼化&#xff01;&#xff1f; 1.函数介绍 C语言中提供了两种函数用于字符大小的转换 tolower可以将大写字符转小写字符&#xff0c;toupper可以将小写字符转大写字符 tolower函数与touppe…

设计并用Java实现一个简易的规则引擎

文章目录 前言正文一、代码结构二、核心代码2.1 上下文数据接口 ContextData.java2.2 规则接口 Rule.java2.3 规则引擎接口 RuleEngine.java2.4 规则引擎上下文类 RuleEngineContext.java2.5 规则引擎默认实现类 DefaultRuleEngine.java2.6 执行时出错监听器接口 ExecuteOnErro…

[mysql]SQL语言的规则和规范

规则 是什么呢&#xff0c;规则就是我们最基本&#xff0c;每时每刻都要遵守的比如人行道靠右&#xff0c;不能逆行&#xff0c; 规范 呢就是锦上添花&#xff0c;如果你不这么做&#xff0c;是不那么道德&#xff0c;不那么好的&#xff0c;就像小学生见到老师要问好&#…

【秋招笔试题】浇水

题解&#xff1a;离散化之后差分数组&#xff0c;注意左闭右闭区间的处理&#xff0c;将点和线段都抽象成点 #include <iostream> #include <vector> #include <set> #include <algorithm>using namespace std;const int MAXN 3000000 5; const int…

基于Spring Boot的火车订票管理系统

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JAVA语言 Spring Boot框架 工具&#xff1a;IDEA/Eclipse、Navicat、Tomcat 系统展示 首页 管理…

方正畅享新闻采编系统 binary.do SQL注入漏洞分析复现

漏洞简介 binary.do接口的TableName参数对传入的数据没有充足的校验&#xff0c;导致该接口存在SQL注入漏洞&#xff0c;未授权的攻击者可获取数据库敏感信息。资产测绘搜索语句 hunter&#xff1a;web.body"/newsedit/newsedit/" 路由与鉴权分析 通过分析web.xml配置…

ubuntu 安装python3 教程

本篇教程,主要介绍如何在Ubuntu上安装python3教程。 1、查看是否有python 在安装前,首先看看自己系统上,是否存在python环境,可能有些系统,默认就安装过python,如果已经有python了,可以直接跳过安装教程。 2、安装步骤 apt update && apt install -y python3 p…

【知识分享】MQTT实战-使用mosquitto客户端连接emqx服务器

一、简介 MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级的、基于发布/订阅模式的通信协议&#xff0c;旨在实现物联网设备之间的低带宽、高延迟的通信。MQTT协议设计简洁&#xff0c;使用TCP/IP协议进行通信&#xff0c;适用于各种网络环境&am…

OpenGL——着色器画一个点

一、 绘制 在窗口中间画一个像素点&#xff1a; #include <GL/glew.h> #include <GLFW/glfw3.h> #include <iostream>using namespace std;#define numVAOs 1GLuint renderingProgram; GLuint vao[numVAOs];GLuint createShaderProgram () {const char *v…

基于canal的Redis缓存双写

canal地址&#xff1a;alibaba/canal: 阿里巴巴 MySQL binlog 增量订阅&消费组件 (github.com)https://github.com/alibaba/canal 1. 准备 1.1 MySQL 查看主机二进制日志 show master status 查看binlog是否开启 show variables like log_bin 授权canal连接MySQL账号 …

有限自动机例题

答案&#xff1a;A 解析&#xff1a; 从图中可以看出从1出发&#xff0c;有一个a的闭环&#xff0c;可以多次重复a&#xff0c;因此选项A不正确 选项B&#xff0c;如果有b&#xff0c;必然经过a回去&#xff0c;不可能出现连续的b 选项C&#xff0c;可以从图中看出&#xf…

前端学习-day14

文章目录 01-媒体查询02-媒体查询-书写顺序03-媒体查询04-媒体查询-link引入06-Bootstrap-使用07-Bootstrap-栅格系统08-Bootstrap-按钮样式09-Bootstrap-表格样式10-bootstrap组件11-bootstrap字体图标alloyTeam项目index.htmlindex.less 01-媒体查询 <!DOCTYPE html> …

数学建模算法汇总(全网最全,含matlab案例代码)

数学建模常用的算法分类 全国大学生数学建模竞赛中&#xff0c;常见的算法模型有以下30种&#xff1a; 最小二乘法数值分析方法图论算法线性规划整数规划动态规划贪心算法分支定界法蒙特卡洛方法随机游走算法遗传算法粒子群算法神经网络算法人工智能算法模糊数学时间序列分析马…