python plt.scatter:四维气泡图

文章目录

  • 一、结果预示
  • 二、绘制过程
    • 2.1 导入相关库
    • 2.2 导入数据
    • 2.3 绘制气泡图
      • 2.3.1 二维气泡
      • 2.3.2 三维气泡
      • 2.3.4 四维气泡

一、结果预示

  • x:销售金额
  • y:单店日均产出
  • size:门店数量
  • 颜色:区分大区
    python plt.scatter:四维气泡图_第1张图片

二、绘制过程

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")

python plt.scatter:四维气泡图_第2张图片

2.3 绘制气泡图

2.3.1 二维气泡

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

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

python plt.scatter:四维气泡图_第3张图片

2.3.2 三维气泡

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

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

python plt.scatter:四维气泡图_第4张图片

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()

python plt.scatter:四维气泡图_第5张图片

你可能感兴趣的:(python,开发语言,数据分析)