zoukankan      html  css  js  c++  java
  • 数据可视化

    数据可视化:

    1、绘制散点图:

    import matplotlib;
    from pandas import read_csv;
    import matplotlib.pyplot as plt;
    
    data = read_csv("C:\PA\5.1\data.csv")
    
    font = {
        'family' : 'SimHei'
    }
    matplotlib.rc('font', **font);
    
    plt.plot(data['广告费用'], data['购买用户数'], '.')
    
    #plt.plot(data['广告费用'], data['购买用户数'], 'o')
    
    #plt.plot(data['广告费用'], data['购买用户数'], 'o', color='yellow')
    #plt.plot(data['广告费用'], data['购买用户数'], 'o', color=(1, 1, 0))
    #plt.plot(data['广告费用'], data['购买用户数'], 'o', color='#FFFF00')
    plt.plot(data['广告费用'], data['购买用户数'], '.')
    
    plt.xlabel('广告费用');
    
    plt.ylabel('购买用户数');
    plt.grid(True);
    
    plt.show();

     2、折线图:

    import pandas;
    from pandas import read_csv;
    from matplotlib import pyplot as plt;
    
    data = read_csv('C:\PA\5.2\data.csv');
    #对日期格式进行转换
    data['购买日期']=pandas.to_datetime(data['日期']);
    
    #'-'    顺滑的曲线
    plt.plot(data['购买日期'], data['购买用户数'], '-');
    
    #设置颜色
    plt.plot(data['购买日期'], data['购买用户数'], '-', color='r');
    #设置线条粗细
    plt.plot(data['购买日期'], data['购买用户数'], '-', color='r', lineWidth=10);
    
    #'--'    虚线
    plt.plot(data['购买日期'], data['购买用户数'], '--');
    #'-.'    线加点
    plt.plot(data['购买日期'], data['购买用户数'], '-.');
    #':'    由点组成的曲线
    plt.plot(data['购买日期'], data['购买用户数'], ':');
    #'.'    散点图
    plt.plot(data['购买日期'], data['购买用户数'], '.');
    #','    像素点的散点图
    plt.plot(data['购买日期'], data['购买用户数'], ',');
    #'o'    大点的散点图
    plt.plot(data['购买日期'], data['购买用户数'], 'o');
    #'v'    下三角标记的散点图
    plt.plot(data['购买日期'], data['购买用户数'], 'v');
    #'^'    上上角标记的散点图
    plt.plot(data['购买日期'], data['购买用户数'], '^');
    #'<'    左角标记的散点图
    plt.plot(data['购买日期'], data['购买用户数'], '<');
    #'>'    右角标记的散点图
    plt.plot(data['购买日期'], data['购买用户数'], '>');
    #'1'    伞形下的标记散点图
    #'2'    伞形上的标记散点图
    #'3'    伞形左的标记散点图
    #'4'    伞形右的标记散点图
    plt.plot(data['购买日期'], data['购买用户数'], '4');
    #'s'    正方形标记的散点图
    plt.plot(data['购买日期'], data['购买用户数'], 's');
    #'p'    五角形标记的散点图
    plt.plot(data['购买日期'], data['购买用户数'], 'p');
    #'*'    五角星标记的散点图
    plt.plot(data['购买日期'], data['购买用户数'], '*');
    #'h'    多边形标记的散点图
    #'H'    hexagon2 marker
    plt.plot(data['购买日期'], data['购买用户数'], 'h');
    #'+'    plus marker
    #'x'    x marker
    #'D'    diamond marker
    #'d'    thin_diamond marker
    plt.plot(data['购买日期'], data['购买用户数'], 'D');
    #'|'    vline marker
    #'_'    hline marker
    plt.plot(data['购买日期'], data['购买用户数'], '|');
    
    plt.title('购买用户数时间序列图');
    
    plt.show();

    3、饼图:

    # -*- coding: utf-8 -*-
    import numpy;
    import matplotlib;
    from pandas import read_csv;
    import matplotlib.pyplot as plt;
    
    data = read_csv('C:\PA\5.3\data.csv');
    
    gb = data.groupby(
        by=['通信品牌'], 
        as_index=False
    )['号码'].agg({
        '用户数':numpy.size
    });
    
    #pip install matplotlib
    
    font = {
        'family' : 'SimHei'
    }
    
    matplotlib.rc('font', **font);
    
    plt.pie(gb['用户数'], labels=gb['通信品牌'], autopct='%.2f%%');
    
    plt.show()

    4、柱形图:

    简单条形图:

    import numpy;
    import matplotlib;
    from pandas import read_csv;
    from matplotlib import pyplot as plt;
    
    font = {
        'family' : 'SimHei'
    };
    matplotlib.rc('font', **font);
    
    data = read_csv('C:\PA\5.4\data.csv');
    
    gb = data.groupby(
        by=['手机品牌']
    )['月消费(元)'].agg({
        '月消费': numpy.sum
    });
    
    index = numpy.arange(gb['月消费'].size);
    
    #竖向柱形图
    plt.bar(index, gb['月消费'], 1, color='G');
    plt.show();
    
    plt.bar(index, gb['月消费'], 1, color='G');
    plt.xticks(index + 1/2, gb.index);
    plt.show();
    
    #横向柱形图
    plt.barh(index, gb['月消费'], 1, color='G');
    plt.yticks(index + 1/2, gb.index);
    plt.show();

    复杂些的:

    import numpy;
    import matplotlib;
    from pandas import read_csv;
    from matplotlib import pyplot as plt;
    
    font = {
        'family' : 'SimHei'
    };
    matplotlib.rc('font', **font);
    
    data = read_csv('C:\PA\5.4\data.csv');
    
    d1 = '手机品牌';
    d2 = '通信品牌';
    v = "月消费";
    
    gb = data.groupby(by=[d1, d2])['月消费(元)'].agg({v: numpy.sum});
    
    d1size = gb.index.levels[0].size;
    d2size = gb.index.levels[1].size;
    
    index = numpy.arange(d1size);
    colors=['r', 'g', 'b'];
    
    for i in range(0, d2size): 
        print(i);
        subgb = gb[v][gb.index.labels[1]==i];
        bar = plt.bar(index*d2size + i, subgb, color=colors[i]);
    
    lIndex = numpy.arange(d1size)*d2size;
    plt.xticks(lIndex + 3/2, gb.index.levels[0]);
    
    plt.legend(gb.index.levels[1]);
    plt.show();

    堆叠图:

    import numpy;
    import matplotlib;
    from pandas import read_csv;
    from matplotlib import pyplot as plt;
    
    font = {
        'family' : 'SimHei'
    };
    matplotlib.rc('font', **font);
    
    data = read_csv('C:\PA\5.4\data.csv');
    
    d1 = '手机品牌';
    d2 = '通信品牌';
    v = "月消费";
    
    gb = data.groupby(by=[d1, d2])['月消费(元)'].agg({v: numpy.sum});
    
    d1size = gb.index.levels[0].size;
    d2size = gb.index.levels[1].size;
    
    index = numpy.arange(d1size);
    colors = ['r', 'g', 'b'];
    bsum = index*0.0;
    
    for i in range(0, d2size): 
        print(i);
        subgb = gb[v][gb.index.labels[1]==i];    
        bar = plt.bar(index, subgb, color=colors[i], bottom=bsum);
        bsum += subgb;
    
    plt.xticks(index+1/2, gb.index.levels[0]);
    
    plt.legend(gb.index.levels[1]);
    plt.show();

    5、直方图:

    import matplotlib;
    from pandas import read_csv;
    from matplotlib import pyplot as plt;
    
    font = {
        'family' : 'SimHei'
    };
    matplotlib.rc('font', **font);
    
    data = read_csv('C:\python\5.5\data.csv');
    
    plt.hist(data['购买用户数']);
    plt.show();
    
    plt.hist(data['购买用户数'], bins=20);
    plt.show();
    
    plt.hist(data['购买用户数'], bins=20, cumulative=True);
    plt.show();
  • 相关阅读:
    图片轮播
    swoole 内存泄露的问题有没有好的办法解决
    学习Swoole需要掌握哪些基础知识
    通过SSH通道来访问MySQL
    redis常见应用场景
    Redis 消息队列的实现
    PHP-Curl模拟HTTPS请求
    代码重构方向原则指导
    win8.1系统相关
    SQL Server 学习系列之六
  • 原文地址:https://www.cnblogs.com/qiuyuyu/p/9146559.html
Copyright © 2011-2022 走看看