zoukankan      html  css  js  c++  java
  • Pyhon数据分析20——matplotlib可视化(二)之柱状图

    atplotlib绘制柱状图
    柱状图(bar chart),是一种以长方形的长度为变量的表达图形的统计报告图,由一系列高度不等的纵向条纹表示数据分布的情况,用来比较两个或以上的价值(不同时间或者不同条件),只有一个变量,通常利用于较小的数据集分析。柱状图亦可横向排列,或用多维方式表达。

    准备
    import numpy as np
    import pandas as pd
    from pandas import Series, DataFrame
    %matplotlib inline
    import matplotlib.pyplot as plt
    1
    2
    3
    4
    5
    新建一个data字典。

    data = [23, 45, 56, 78, 213]
    1
    绘图
    用一句代码就可以完成最基本的绘制柱状图了。前面的参数的X轴,后面的参数Y轴。

    plt.bar([1,2,3,4,5], data)
    1


    颜色
    可以调整柱状图的颜色。

    plt.bar(range(len(data)), data, color='red')
    1


    透明度
    调整柱状图的透明度。注意:如果调整过头,就跟我下面的一样,秉承粉色的感觉了。


    格网
    利用grid()函数绘制格网。

    plt.bar(range(len(data)), data, color='royalblue', alpha=0.7)
    plt.grid(color='#95a5a6', linestyle='--', linewidth=2, axis='y', alpha=0.7)
    1
    2
    同时,还能设置格网的颜色,形状,大小,方向和透明度。


    堆积
    利用bottom属性,可以设置是否堆积两个柱状图。

    data1 = [23,85, 72, 43, 52]
    data2 = [42, 35, 21, 16, 9]
    plt.bar(range(len(data)), data1)
    plt.bar(range(len(data)), data2, bottom=data1)
    1
    2
    3
    4

    好玩一点的操作就是利用width属性把普通柱状图转换成并列柱状图。

    data1 = [23,85, 72, 43, 52]
    data2 = [42, 35, 21, 16, 9]
    width =0.3
    plt.bar(np.arange(len(data1)), data1, width=width)
    plt.bar(np.arange(len(data2))+ width, data2, width=width)
    1
    2
    3
    4
    5

    利用barh()函数可以绘制横向柱状图。


    刻度
    利用xticks()函数可以设置柱状图 的刻度。

    data = [23,85, 72, 43, 52]
    plt.xticks(range(len(data)))
    plt.bar(range(len(data)), data)
    1
    2
    3


    同样,可用xticks()函数也可以设置刻度的标签。

    data = [23,85, 72, 43, 52]
    labels = ['A', 'B', 'C', 'D', 'E']
    plt.xticks(range(len(data)),labels)
    plt.bar(range(len(data)), data)
    1
    2
    3
    4

    注意:不能单独设置刻度的标签,但是可以单独设置刻度。
    还有,可以通过yticks()函数修改Y轴的刻度。

    坐标轴标签
    可以通过xlabel()和ylabel()函数可以设置X轴和Y轴的标签。

    data = [23,85, 72, 43, 52]
    labels = ['A', 'B', 'C', 'D', 'E']
    plt.xticks(range(len(data)), labels)
    plt.xlabel('Class')
    plt.ylabel('Amounts')
    plt.bar(range(len(data)), data)
    1
    2
    3
    4
    5
    6


    标题
    通过title()函数设置坐标轴的标题。

    data = [23,85, 72, 43, 52]
    labels = ['A', 'B', 'C', 'D', 'E']
    plt.xticks(range(len(data)), labels)
    plt.xlabel('Class')
    plt.ylabel('Amounts')
    plt.title('I am title')
    plt.bar(range(len(data)), data)
    1
    2
    3
    4
    5
    6
    7


    图例
    在bar()函数里面传入label属性可以设置 图例的名称,通过legend()函数可以绘制图例。

    data1 = [23,85, 72, 43, 52]
    data2 = [42, 35, 21, 16, 9]
    width =0.3
    plt.bar(np.arange(len(data1)), data1, width=width, label='one')
    plt.bar(np.arange(len(data2))+ width, data2, width=width, label='two')
    plt.legend()
    ---------------------

  • 相关阅读:
    三元表达式 列表和字典推导式 函数对象 名称空间 作用域 global和nonlocal 函数装饰器 枚举对象
    函数参数 打散机制 字符串比较 返回值
    函数简介
    三种字符串的介绍 文件的读写
    字符编码
    数据类型及其常用方法 数据类型转换 可变与不可变 值拷贝与深浅拷贝
    流程控制 while和for循环
    变量命名规范 常量 输入和输出 注释 数据类型 运算符 逻辑运算符
    语言分类 编译型和解释型语言分析 环境变量 代码执行的方式 pip介绍 变量
    Python django tests
  • 原文地址:https://www.cnblogs.com/hyhy904/p/11089231.html
Copyright © 2011-2022 走看看