热搜:前端 nest neovim nvim

数据分析实战—气泡图

lxf2023-06-22 02:31:23

前言

   提供的数据:数据

一、气泡图能做什么?

   气泡图(bubble chart)是可用于展示三个变量之间的关系。它与散点图类似,绘制时将一个变量放在横轴,另一个变量放在纵轴,而第三个变量则用气泡的大小来表示。排列在工作表的列中的数据(第一列中列出 x 值,在相邻列中列出相应的 y 值和气泡大小的值)可以绘制在气泡图中。气泡图与散点图相似,不同之处在于:气泡图允许在图表中额外加入一个表示大小的变量进行对比。(摘自百度百科)

数据分析实战—气泡图

   其实气泡图是在散点图的基础上增加了数据的大小对比,在一些问题中经常使用。

二、绘制气泡图

   针对数据提出要求:绘制每月交易额均值气泡图,横轴为时间,纵轴为商品的二级类目

  1. 加载必要的包
import pandas as pd
import matplotlib.pyplot as plt
  1. 读取数据
path='../data/数据.csv'
f=open(path)
data=pd.read_csv(f)
data=data.loc[:,['支付时间','金额','商品二级类']] #绘制气泡图只与该三个属性有关,为方便起见,将其提取出来
  1. 分组计算金额
data['支付时间'] = pd.to_datetime(data['支付时间'])
group=data.groupby(['商品二级类',data['支付时间'].dt.month])['金额'].mean()

   groupby函数是经常使用的分组函数,若对groupby函数尚有不解,可以参考此博客:groupby函数详解,以下为分组计算得出的交易均值。

数据分析实战—气泡图

   由结果可以看出,索引中是我们给出的分组依据,分别是“二级类”和“支付时间的月份”,格式是元组类型。

  1. 处理元组数据
#处理元组数据,元组数据中包含二级类和月份,主要是分离两个属性,构成一个列表
m=list(map(list,zip(*list(group.index))))  

#分离三种数据
x=m[1]  #月份数据
y=m[0]  #二级类
z=group.values #总交易额

   绘制气泡图的需要数据一一对应,不得以才使用如此麻烦的方法,如果您有更好的解决方法,请您不吝赐教。

  1. 绘制气泡图
names = ['一月', '二月', '三月', '四月']
plt.scatter(x,y,s=z*10,alpha=0.6,c=x) #前两个参数为横纵坐标,第三个参数是数据大小,控制气泡的大小,可以统一扩大一定倍数。alpha表示透明度。c表示气泡颜色,令c=x表示颜色个数与横坐标匹配。
plt.xticks(x, names)
plt.xlabel("月份") #X轴标签
plt.ylabel("二级类") #Y轴标签
plt.show()

数据分析实战—气泡图

   由图可以看出,香烟产品在四个月份销量都是最高的,其次是蜜饯/果干产品;糖果/巧克力产品在一、三月份销量较佳,在二、四月份较为一般。

代码汇总

import pandas as pd
import matplotlib.pyplot as plt

path='../data/数据.csv'
f=open(path)
data=pd.read_csv(f)
data=data.loc[:,['支付时间','金额','商品二级类']]

data['支付时间'] = pd.to_datetime(data['支付时间'])
group=data.groupby(['商品二级类',data['支付时间'].dt.month])['金额'].mean()

#处理元组数据,元组数据中包含二级类和月份,主要是分离两个属性,构成一个列表
m=list(map(list,zip(*list(group.index))))  

#分离三种数据
x=m[1]  #月份数据
y=m[0]  #二级类
z=group.values #总交易额

names = ['一月', '二月', '三月', '四月']
plt.scatter(x,y,s=z*10,alpha=0.6,c=x)
plt.xticks(x, names)
plt.xlabel("月份") #X轴标签
plt.ylabel("二级类") #Y轴标签
plt.show()
f.close()

三、其它问题

数据

python画图 中文字体不显示的问题

数据分析实战—柱状图

数据分析实战—折线图

数据分析实战—饼状图

数据分析实战—气泡图

数据分析实战—热力图

参考

matplotlib官方资料

本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。 在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!