plt.scatter绘制气泡图

气泡图

气泡图(Bubble Chart)是一种多变量的图片,是散点图的一种变体,气泡图其实是在散点图的基础上进行升级改造的,在原有的以横纵坐标为变量的基础上,引入第三个变量,用气泡的大小来表示,是一种展示三个变量之间关系的数据图表,因此被称为气泡图。气泡图通常通过气泡的位置以及面积大小比较,用于比较和展示不同类别的气泡之间的关系。从整体上看,气泡图可用于分析数据之间的相关性。

适用场景

气泡图可以直观地表现出影响因素和预测对象之间的总体关系趋势,通过其醒目的图形方式,可以反映变量间的形态变化关系情况,以便于来模拟变量之间的关系。利用气泡图,可以显示若干数据系列中各数值之间的关系,类似 XY 轴,判断两变量之间是否存在某种关联,或者发现数据的分布或者聚合情况。气泡图曾经主要应用于数学统计学科中,现如今气泡图已被广泛运用于各个行业,比如质量管理、商业图表分析等。

优势:气泡图可以很好地表现数据的分布、关系、趋势,直观明了。
缺点:气泡图数据大小容量有限,气泡太多会使图表难以阅读。不适合数据点较少、切数据前相关性较弱的数据。

实战


# 导入第三方模块
import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False    # 用来显示负号
# 读取数据
Prod_Category = pd.read_excel(r'SuperMarket.xlsx')
# 将利润率标准化到[0,1]之间(因为利润率中有负数),然后加上微小的数值0.001
range_diff = Prod_Category.Profit_Ratio.max()-Prod_Category.Profit_Ratio.min()
Prod_Category['std_ratio'] = (Prod_Category.Profit_Ratio-Prod_Category.Profit_Ratio.min())/range_diff + 0.001

# 绘制办公用品的气泡图
plt.scatter(x = Prod_Category.Sales[Prod_Category.Category == '办公用品'], 
           y = Prod_Category.Profit[Prod_Category.Category == '办公用品'], 
           s = Prod_Category.std_ratio[Prod_Category.Category == '办公用品']*1000,
           color = 'steelblue', label = '办公用品', alpha = 0.6
            )
# 绘制技术产品的气泡图
plt.scatter(x = Prod_Category.Sales[Prod_Category.Category == '技术产品'], 
           y = Prod_Category.Profit[Prod_Category.Category == '技术产品'], 
           s = Prod_Category.std_ratio[Prod_Category.Category == '技术产品']*1000,
           color = 'indianred' , label = '技术产品', alpha = 0.6
          )
# 绘制家具产品的气泡图
plt.scatter(x = Prod_Category.Sales[Prod_Category.Category == '家具产品'], 
           y = Prod_Category.Profit[Prod_Category.Category == '家具产品'], 
           s = Prod_Category.std_ratio[Prod_Category.Category == '家具产品']*1000,
           color = 'black' , label = '家具产品', alpha = 0.6
          )
# 添加x轴和y轴标签
plt.xlabel('销售额')
plt.ylabel('利润')
# 添加标题
plt.title('销售额、利润及利润率的气泡图')
# 添加图例
plt.legend()
# 显示图形
plt.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值