python plt.scatter:四维气泡图

一、结果预示

  • x:销售金额
  • y:单店日均产出
  • size:门店数量
  • 颜色:区分大区
    在这里插入图片描述

二、绘制过程

2.1 导入相关库

import random
import pandas as pd

import seaborn as sns
import matplotlib.pyplot as plt

# 解决win 系统 seaborn中文不显示问题
from matplotlib.font_manager import FontProperties
myfont=FontProperties(fname=r'C:\Windows\Fonts\simhei.ttf',size=14)
sns.set(font=myfont.get_name())

2.2 导入数据

data = pd.read_excel("data_气泡图.xlsx")

在这里插入图片描述

2.3 绘制气泡图

2.3.1 二维气泡

  • x:销售金额
  • y:单店日均产出
# 设置画布大小、精度
plt.figure(
    figsize = (16,8), # 设置图片大小
    dpi = 100         # 精度
)

plt.scatter(
    x = data['销售金额'],
    y = data['单店日均产出'],
)

在这里插入图片描述

2.3.2 三维气泡

  • x:销售金额
  • y:单店日均产出
  • size:门店数量
# 设置画布大小、精度
plt.figure(
    figsize = (16,8), # 设置图片大小
    dpi = 100         # 精度
)

plt.scatter(
    x = data['销售金额'],
    y = data['单店日均产出'],
    s = data['门店数量']*100
)

在这里插入图片描述

2.3.4 四维气泡

  • x:销售金额
  • y:单店日均产出
  • size:门店数量
  • 颜色:区分大区
def Randomcolor():
    '''
        生成随机颜色编码
    '''
    colorArr = ['1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']
    color = ""
    for i in range(6):
        color += colorArr[random.randint(0,14)]
    return "#"+color

def Scatter(df,x_name,y_name,size_name,legend_name,marker_name):
    '''
        绘制四维气泡图
        输入 -- df: DataFrame
                x_name: 横轴列
                y_name: 纵轴列
                size_name: 规格大小列
                legend_name: 图例名称列
                marker_name: 数据标签列
    '''
    plt.scatter(
        x = df[x_name],
        y = df[y_name],
        s = df[size_name]*100,
        color = Randomcolor(), # 采用随机颜色
        label = df[legend_name].unique().tolist()[0],
    )
    
    # 添加数据标签
    for x, y, m in zip(df[x_name], df[y_name], df[marker_name]):
        plt.text(x, y, m, ha='center', va='bottom')
    
    
# 设置画布大小、精度
plt.figure(
    figsize = (16,8), # 设置图片大小
    dpi = 100         # 精度
)
    
# 借用groupby函数绘制多维气泡图
data.groupby(['大区']).apply(Scatter,"销售金额","单店日均产出","门店数量","大区","省份") 


# 添加x轴和y轴标签
plt.xlabel('销售金额')
plt.ylabel('单店日均产出')

# 添加标题
plt.title('四维气泡图示例',size=25)

# 添加图例
plt.legend(
    fontsize=15,    # 图例文字大小
    frameon=True,   # 是否显示图例边框
    shadow=True,    # 是否为图例边框添加阴影
    labelspacing=1,  # 图例中条目之间的距离
    markerscale=0.5, # 图例标记为原图标记中的多少倍大小
)

# 显示图形
plt.show()

在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值