Python--数据可视化应用案例

文章目录

    • 1. 需要分析的文件
    • 2. 读取文件
    • 3. 剩余流量与用户流失间的关系
    • 4. 剩余通话时长与用户流失的关系
    • 5. 非流失用户剩余流量与剩余通话时长的关系


1. 需要分析的文件

【需要分析的文件链接】

Python--数据可视化应用案例_第1张图片

2. 读取文件

import numpy as np
import matplotlib.pyplot as mp
import matplotlib.gridspec as mg


def load_csv():
    """
    加载 CustomerSurvival.csv 文件
    并根据文件中的数据,创建一个 ndarray 数组
    :return: 返回创建的 ndarray 数组
    """
    # 表头
    header = []
    # 数据
    datas = []
    # 以读取的方式打开文件
    with open('CustomerSurvival.csv', 'r') as f:
        for index, line in enumerate(f.readlines()):
            # 第一行为表头单独处理
            if index == 0:
                # 每行后面都有一个换行符,裁去换行符
                header = line[:-1].split(',')
            else:
                datas.append(tuple(line[:-1].split(',')))
    # 构建 ndarray 数组
    result = np.array(datas, dtype={'names': header, 'formats': ['f8', 'f8', 'f8', 'f8', 'f8', 'f8']})
    return result


data = load_csv()
print(data.shape, data[0])

Python--数据可视化应用案例_第2张图片

3. 剩余流量与用户流失间的关系

extra_flow = data['extra_flow']
loss = data['loss']
mp.figure('extra_flow & loss', facecolor='lightgray')
mp.title('extra_flow & loss', fontsize=16)
mp.xlabel('extra_flow', fontsize=12)
mp.ylabel('loss', fontsize=12)
mp.grid(linestyle=':')
mp.scatter(
    extra_flow, loss,
    # color='dodgerblue',
    marker='o',
    s=80,
    c=loss,
    cmap='jet'
)
mp.show()

Python--数据可视化应用案例_第3张图片

4. 剩余通话时长与用户流失的关系

extra_time = data['extra_time']
loss = data['loss']
mp.figure('extra_time & loss', facecolor='lightgray')
mp.title('extra_time & loss', fontsize=16)
mp.xlabel('extra_time', fontsize=12)
mp.ylabel('loss', fontsize=12)
mp.grid(linestyle='-')
mp.scatter(
    extra_time, loss,
    marker='o',
    s=50,
    c=loss,
    cmap='jet'
)

mp.show()

Python--数据可视化应用案例_第4张图片

5. 非流失用户剩余流量与剩余通话时长的关系

extra_time = data['extra_time']
extra_flow = data['extra_flow']
loss = data['loss']
mp.figure('extra_time & extra_flow', facecolor='lightgray')
mp.title('extra_time & extra_flow', fontsize=16)
mp.xlabel('extra_time', fontsize=12)
mp.ylabel('extra_flow', fontsize=12)
mp.grid(linestyle='-')
mp.scatter(
    extra_time[loss==0], extra_flow[loss==0],
    marker='o',
    s=50,
    color='dodgerblue'
)

Python--数据可视化应用案例_第5张图片

你可能感兴趣的:(Python,python,机器学习,matplotlib,numpy)