数据可视化实战(三)

news2024/11/15 11:54:03

图书销量情况对比

import pandas as pd
import matplotlib.pyplot as plt 

# 读取Excel数据
df=pd.read_excel('mrbook.xlsx')
df
序号书号序号.1月份销量rate
0B189.787569e+1211月15060.3
1B199.787569e+1222月1200-0.3
2B259.787569e+1233月33050.6
3B219.787569e+1244月66100.5
4NaNNaN55月88880.3
5B159.787569e+1266月123540.3
#处理中文乱码
plt.rcParams['font.sans-serif']=['SimHei']
# 用来正常的显示负号
plt.rcParams['axes.unicode_minus']=False

plt.figure(figsize=(12,9))
fig,ax1 = plt.subplots()

# 绘制柱状图
ax1.bar(df['月份'], df['销量'])


# plt.barh(y = industry.index[::-1],
#          width=industry.values[::-1],
#          color = '#3c7f7f')

plt.title(label='      销量情况对比     ', 
          fontsize=32, weight='bold', color='white', 
          backgroundcolor='#cf778f',ha = 'center',pad = 30)
ax1.tick_params(labelsize=16)
ax1.grid(lw = 0.5,color = '#3c7f7f',ls = '--')
# 设置y轴标签
ax1.set_ylabel( '销售(册)', fontsize=18)

ax2 = ax1.twinx()
ax2.plot(df['月份'], df['rate'], color='#3c0f7f', linestyle='--', marker='o', linewidth=2)
# 设置y轴标签
ax2.set_ylabel('增长率', fontsize=18)

# 添加文本
for a,b in zip(df['月份'], df['rate']):
    plt.text(a, b+0.02, '%.2f'%b, ha='center', va='bottom', fontsize=10, color='r')
plt.show()

在这里插入图片描述

订单数据分析

# 读取Excel数据
mrtb=pd.read_excel('mrtb_data.xlsx')
mrtb.shape # (599, 21)
mrtb.head()
买家会员名买家实际支付金额宝贝总数量宝贝标题类别宝贝种类总金额收货人姓名性别收货地址...物流单号确认收货时间联系手机联系电话订单付款时间订单关闭原因订单创建时间订单备注订单状态运送方式
0mr0001451100.01.0【正版即插即用】ASP.NET编程词典珍藏版(含1TB移动硬盘)资源库编程词典1.01100.0*************...No:210262018-03-19 16:23:07****'null2018-03-09 14:55:49订单未关闭2018-03-09 10:00:36'null交易成功快递
1mr0004921198.01.0【正版即插即用】ASP.NET编程词典珍藏版(含1TB移动硬盘)资源库编程词典1.01198.0*************...No:213732018-06-15 10:57:01****'null2018-06-09 09:25:16订单未关闭2018-06-08 19:33:32'null交易成功快递
2mr0004931198.01.0【正版即插即用】ASP.NET编程词典珍藏版(含1TB移动硬盘)资源库编程词典1.01198.0*************...No:213742018-06-15 10:57:01****'null2018-06-09 09:25:16订单未关闭2018-06-08 19:33:32'null交易成功快递
3mr0002471168.01.0【正版-即插即用】C#编程词典珍藏版(含1TB移动硬盘)资源库编程词典1.01168.0*************...No:211282018-12-02 10:46:44****'null2018-11-20 19:21:58订单未关闭2018-11-20 19:21:33'null交易成功快递
4mr0002711168.01.0【正版-即插即用】C#编程词典珍藏版(含1TB移动硬盘)资源库编程词典1.01168.0*************...No:211522018-11-01 18:41:44****'null2018-10-29 02:31:39订单未关闭2018-10-29 02:30:37'null交易成功快递

5 rows × 21 columns

不同性别在不同类别的消费分布


# 根据类别分组,计算每组中 买家实际支付金额 的总和
mrtb1=mrtb.groupby(['类别'])['买家实际支付金额'].sum()
mrtb1
"""
类别
V1会员        7425.00
V2会员       14651.00
图书         44650.33
明日高级VIP    15096.00
编程词典       28681.20
Name: 买家实际支付金额, dtype: float64
"""


# 根据类别和性别分组,统计不同买家的人数,并重置索引
mrtb2=mrtb.groupby(['类别','性别'])['买家会员名'].count().reset_index()
mrtb2
类别性别买家会员名
0V1会员31
1V1会员44
2V2会员36
3V2会员13
4图书50
5图书381
6明日高级VIP3
7明日高级VIP14
8编程词典6
9编程词典21
# 绘制柱状图:不同类别的买家实际支付金额
plt.figure(figsize=(8, 6))
plt.bar(mrtb1.index, mrtb1.values, color='blue', alpha=0.5)
plt.xlabel('类别', fontsize=12)
plt.ylabel('买家实际支付金额', fontsize=12)
plt.title('不同类别的买家实际支付金额', fontsize=16)
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

在这里插入图片描述

不同性别在不同类别的消费分布

mrtb1_df =  pd.DataFrame(mrtb1)
# 使用透视表计算不同性别在不同类别的消费总额
pivot_table = pd.pivot_table(mrtb1_df.merge(mrtb2, on='类别'), index='类别', columns='性别', values='买家实际支付金额', aggfunc='sum')
pivot_table
性别
类别
V1会员7425.007425.00
V2会员14651.0014651.00
图书44650.3344650.33
明日高级VIP15096.0015096.00
编程词典28681.2028681.20
# 绘制堆叠柱状图
plt.figure(figsize=(8, 6))
categories = pivot_table.index
labels = pivot_table.columns
colors = ['pink', 'lightblue']

bottom = None
for label in labels:
    values = pivot_table[label]
    plt.bar(categories, values, bottom=bottom, label=label, color=colors.pop(0))
    if bottom is None:
        bottom = values
    else:
        bottom += values
    for i, value in enumerate(values):
        plt.annotate(f'¥{value:.2f}', (i, bottom[i]), ha='center', va='bottom')
        
plt.xlabel('类别', fontsize=12)
plt.ylabel('买家实际支付金额', fontsize=12)
plt.title('不同性别在不同类别的消费分布', fontsize=16, backgroundcolor='#cf778f')
plt.legend()
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

在这里插入图片描述

双色球中奖号码分析

win = pd.read_csv('data.csv',encoding='gb2312')
win.head()
开奖日期期号中奖号码销售额(元)中奖注数一等奖中奖注数二等奖
02020/1/16202000705 12 17 20 25 31 1035803596238 (津 冀 吉 沪..)269
12020/1/14202000603 04 05 10 16 32 0936169731620 (浙 豫 粤 桂..)363
22020/1/12202000511 16 17 22 26 32 044006424768 (冀 皖 赣 鄂..)224
32020/1/9202000402 15 17 27 32 33 033708261587 (晋 浙 鲁 粤..)189
42020/1/7202000309 17 26 29 30 32 0336896093816 (苏 浙 鄂 湘..)134

# 提取中奖号码
winning_numbers = win['中奖号码'].str.split(' ', expand=True)

# 将"nan"替换为实际的NaN值
# df.replace("nan", np.nan, inplace=True)
# 填充NaN值为0
# winning_numbers.fillna(0, inplace=True).astype(int)

winning_numbers
0123456789101112
005121720253110
103040510163209
211161722263204
302151727323303
409172629303203
..........................................
82708101214182814
82801041922242515
82906101128303312
83004212331323304
83103091520272901

832 rows × 13 columns

# 统计每一列中不同数字出现的次数
number_counts  = winning_numbers.apply(pd.value_counts).fillna(0)
number_counts = number_counts[[0, 2, 4, 6, 8, 10, 12]]

# 重置列索引
number_counts.set_axis(range(1, len(number_counts.columns) + 1), axis=1, inplace=True)
number_counts.head()
1234567
0.00.00.00.00.00.00.0
01163.00.00.00.00.00.060.0
02128.022.00.00.00.00.049.0
0385.038.03.00.00.00.047.0
0480.039.010.00.00.00.056.0
# 绘制热力图
plt.figure(figsize=(10, 8))
sns.heatmap(number_counts, annot=True, fmt='g', cmap='YlGnBu')
plt.title('     双色球中奖号码次数热力图     ', fontsize=16, backgroundcolor='#cf778f')
plt.xlabel('中奖号码位置',  fontsize=12)
plt.ylabel('中奖号码',  fontsize=12)
plt.xticks(rotation=45)
plt.yticks(rotation=0)
plt.tight_layout()
plt.show()

在这里插入图片描述

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

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

相关文章

docker 进入容器内部命令

docker容器运行了,怎么进入容器内部查看内部的文件情况呢? 答:可以通过docker exec 的命令查看。 docker exec --help 可以查看命令介绍 : docker exec -it XXX /bin/bash XX为容器ID 进入容器内部 /bin/bash是需要添加的 不…

虚拟机扩展:虚拟机快照

虚拟机快照 在学习阶段我们无法避免的可能损坏Linux操作系统。如果损坏的话,重新安装一个Linux操作系统就会十分麻烦。 那我们就可以通过快照将当前虚拟机的状态保存下来,在以后系统损坏时通过快照恢复虚拟机到保存的状态。 制作并还原快照 在VMware …

学习人工智能:Attention Is All You Need-1-介绍;Transformer模型架构;编码器,解码器

Transformer模型是目前最成功的chatGPT,Sora,文心一言,LLama,Grok的基础模型。 《Attention Is All You Need》是一篇由Google DeepMind团队在2017年发表的论文,该论文提出了一种新的神经网络模型,即Trans…

001_measuretime_in_Matlab运行时间测量与时间复杂度分析

Matlab中测量时间 在使用Matalb时,经常需要考虑自己编写代码的效率。在这种情况下,我们需要测量程序运行的时间。Matlab提供了一些函数来测量程序运行的时间。 1. 函数简介 本文涵盖的函数包括: tic和toc函数cputime函数timeit函数 1.1 …

微信投票小程序源码系统:礼物道具投票盈利能力超强 带完整的安装代码包以及安装部署教程

近年来,微信小程序以其便捷性、轻量化等特点,迅速占据了移动应用市场的一席之地。投票小程序作为其中的一种应用类型,因其独特的互动性和社交性,成为了商家进行品牌宣传、活动推广的有力工具。然而,市场上的投票小程序…

【数据可视化】Echarts官方文档及常用组件

个人主页 : zxctscl 如有转载请先通知 文章目录 1. 前言2. Echarts官方文档介绍3. ECharts基础架构及常用术语3.1 ECharts的基础架构3.2 ECharts的常用术语3.2.1 ECharts的基本名词3.2.2 ECharts的图表名词 4. 直角坐标系下的网格及坐标轴4.1 直角坐标系下的网格4.2…

训练svm并部署树莓派

训练svm并部署树莓派 开发环境1. 准备数据集2. 训练模型3. 部署模型开发环境 vscode python 3.8 用到的库: scikit-learn==1.3.2 pickle torch pandas matplotlib 1. 准备数据集 数据为xls文件,如下格式 2. 训练模型 文件结构 执行训练 python代码 import pickle &…

基于Spring Boot的研究生志愿填报辅助系统

摘 要 二十一世纪我们的社会进入了信息时代,信息管理系统的建立,大大提高了人们信息化水平。传统的管理方式对时间、地点的限制太多,而在线管理系统刚好能满足这些需求,在线管理系统突破了传统管理方式的局限性。于是本文针对这一…

代码随想录day28(1)二叉树:二叉搜索树中的插入操作(leetcode701)

题目要求:给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据保证,新值和原始二叉搜索树中的任意节点值都不同。 思路:对于二叉搜索树来说&…

win10 chm文件打开空白怎么办 win10 chm文件打开空白解决办法

win10 chm文件打开空白怎么办 win10 chm文件打开空白解决办法 有的win10用户遇到chm文件在本地打开是正常的,但是一旦共享就会出现打开空白的情况,像这种情况怎么办呢?其实会出现这种情况基本是因为win10系统的安全防护功能,它…

verilog设计-CDC:单bit脉冲快时钟域到慢时钟域

一、前言 当单bit信号由快时钟域传递给慢时钟域时,快时钟域的异步信号最小可为快时钟信号的一个时钟周期脉冲,快时钟域的单时钟周期脉冲长度小于慢时钟域的时钟周期,很有可能该脉冲信号在慢时钟域的两个时钟上升沿之间,导致该脉冲…

MATLAB环境下基于振动信号的轴承状态监测和故障诊断

故障预测与健康管理PHM分为故障预测和健康管理与维修两部分,PHM首先借助传感器采集关键零部件的运行状态数据,如振动信号、温度图像、电流电压信号、声音信号及油液分析等,提取设备的运行监测指标,进而实现对设备关键零部件运行状…

C++面试宝典第36题:骑士游历

题目 在国际象棋的棋盘上,使一个骑士遍历所有的格子一遍且仅一遍。对于任意给定的顶点,输出一条符合上述要求的路径。骑士的走法和中国象棋的马的走法一样,走日。 解析 本题是一个经典的回溯搜索问题,具体来说是求解国际象棋棋盘上骑士的遍历问题,也称为骑士巡游问题(Kni…

新品发布 | Ftrans FIE文件安全导入导出系统

关于飞驰云联 飞驰云联是中国领先的数据安全传输解决方案提供商,长期专注于安全可控、性能卓越的数据传输技术和解决方案,公司产品和方案覆盖了跨网跨区域的数据安全交换、供应链数据安全传输、数据传输过程的防泄漏、FTP的增强和国产化替代、文件传输自…

SinoDB系统数据库

在SinoDB数据库的一个实例中,存在多个数据库,分为系统数据库和用户数据库。系统数据库在实例初始化时自动创建,存放实例级别上的监控信息、数据字典信息,用户能够访问而不能修改这些数据。用户数据库由用户根据需要创建&#xff0…

Ubuntu Desktop - lock screen (锁屏)

Ubuntu Desktop - lock screen [锁屏] 1. System Settings -> Security & Privacy (安全和隐私)2. System Settings -> Keyboard -> Shortcuts -> System3. LockReferences 1. System Settings -> Security & Privacy (安全和隐私) 使用 Putty 远程登录…

飞跃前端瓶颈:技术进阶指南精华篇

引言: 在互联网的快车道上,前端技术日新月异。对于前端工程师而言,技术水平达到一定高度后,往往会遭遇成长的天花板。本文将探讨如何识别并突破这些技术瓶颈,分享实用的进阶策略和实践案例。 一、技术等级概览&#xf…

WORD某一段格式调整,其他段落也调整

在编辑WORD文字格式时,有时候会出现WORD某一段格式调整,其他段落的格式直接就乱了,该如何修复? 答:问题的根源在于格式的自动更新,把自动更新前面的勾选框取消即可。

Google的MELON: 通过未定位图像重建精确3D模型的突破性算法

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

【图解物联网】第1章 物联网的基础知识

1.1 物联网入门 1.1.1 物联网 物联网的英语是Internet of Things,缩写为IoT,这里的“物”指的是我们身边一切能与网络相连的物品。只要能与网络相连,就都是物联网说的“物”。 物联网就是“物”之间通过连接互联网来共享信息并产生…