精华内容
下载资源
问答
  • 主要介绍了python matplotlib库绘制条形图练习题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 里面有针对64的Python2.7系列的matplotlib.exe文件,还有别的,很实用
  • Python -Matplotlib库绘制图形 参考链接: https://blog.csdn.net/qq_34859482/article/details/80617391 https://www.cnblogs.com/xmcwm/p/11831492.html 一,Matplotlib库介绍 matplotlib: 最流行的Python底层绘...
  • (可能只有最后一句命令有用,可能全篇都没用) ...一开始我在pycharm终端使用pip install matplotlib时,出现的是下图所示情况,大致情况是安装时间太长,所以当时我用了清华镜像,将原来的命令改成了pip install -i ...
  • python matplotlib库的官方文档,下载了顺便分享一下.
  • python第三方库matplotlib

    2018-09-18 14:43:51
    Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。
  • 主要介绍了python matplotlib库直方图绘制详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Matplotlib库简介

    千次阅读 2020-08-25 09:46:39
    一、Matplotlib绘制图形 我们已经学习过了 NumPy 的统计分析,数据的各项指标都可以以真实的数据提供出来, 有的同学可能有疑问? 我们为什么要进行可视化?而可视化在数据分析中又占什么样的地位?我们之前大致说过...

    一、Matplotlib绘制图形

    我们已经学习过了 NumPy 的统计分析,数据的各项指标都可以以真实的数据提供出来, 有的同学可能有疑问?

    我们为什么要进行可视化?而可视化在数据分析中又占什么样的地位?我们之前大致说过,可视化可以将我们的数据更加直观的表现出来,方便我们得到数据分析的结论,那么还有什么作用吗?那么我们一起来一下这一组数据

    观察上面这一组数据,并没有发现什么规律,但是我们可以对其进行统计指标计算,来得到:

    而观察统计指标中的均值、标准差,会发现整个的 x_ *、y __ * 数据的均值、标准差都是 基本一样的,那么到底可不可以得到,整个 x_ * 数据的规律是一样的?整个 y_ * 数据的规律 是一样的?

    那么我们对该数据进行可视化,来绘制图形来查看该数据的分布情况,会发现:

    而观察数据的分布散点,可以得到:该数据的分布规律并不相同。那么根据指标所得到 的规律只是显示着该数据的某些指标相同,但是真实的规律还得需要图形的支撑,不然不足 以提供强大的说服力

    那么到底如何实现图像可视化?接下来我们一起来学习 Matplotlib 可视化库

    二、Matplotlib 数据可视化基础

    对 Matplotlib 认识

    Matplotlib 是一个 Python 的 2D 绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形

    Matplotlib 绘图流程

    1、创建画布与创建子图

    第一部分主要作用是构建出一张空白的画布,并可以选择是否将整个画布划分为多个部 分,方便在同一幅图上绘制多个图形的情况。最简单的绘图可以省略第一部分,而后直接在默认的画布上进行图形绘制

    函数名称函数作用
    plt.figure创建一个空白画布,可以指定画布大小,像素
    figure.add_subplot创建并选中子图,可以指定子图的行数,列数,与选中图片编号
    plt.subplots_adjust调整子图之间的间距,wspace 为调整宽度,hspace 为调整高度

    2、添加画布内容

    第二部分是绘图的主体部分,其中添加标题,坐标轴名称,绘制图形等步骤是并列的, 没有先后顺序,可以先绘制图形,也可以先添加各类标签,但是添加图例一定要在绘制图形之后

    函数名称函数作用
    plt.title在当前图形中添加标题,可以指定标题的名称、位置、颜色、字体大小等参数
    plt.xlabel在当前图形中添加 x 轴名称,可以指定位置、颜色、字体大小等参数
    plt.ylabel在当前图形中添加 y 轴名称,可以指定位置、颜色、字体大小等参数
    plt.xlim指定当前图形 x 轴的范围,只能确定一个数值区间,而无法使用字符串标识
    plt.ylim指定当前图形 y 轴的范围,只能确定一个数值区间,而无法使用字符串标识
    plt.xticks指定 x 轴刻度的数目与取值
    plt.yticks指定 y 轴刻度的数目与取值
    plt.legend指定当前图形的图例,可以指定图例的大小、位置、标签

    3、存与展示图形

    第三部分主要用于保存和显示图形

    函数名称函数作用
    plt.savafig保存绘制的图片,可以指定图片的分辨率、边缘的颜色等参数
    plt.show在本机显示图形

    现在人们对于旅游、出行越来越热衷,一旦出现周末、小假期,基本都会出行旅游,所以对于天气的依赖越来越重要,以 xx 城市下一周天气温度走势为例,来理解绘图三部曲, 以下为某城市下一周天气

    温度表:

    ​ 某城市下一周天气温度表

    日期周一周二周三周四周五周六周日
    xx 城市天气温度(℃)15202223201816

    以下为绘制出的效果图:

    代码实现:

    # 导包
    import matplotlib.pyplot as plt
    import numpy as np
    
    # 1、创建画布
    # figsize : 画布大小,元组形式,可以给定画布的宽、高
    # dpi :像素大小
    # 返回值:画布对象
    plt.figure()
    
    # 2、绘图及修饰
    # 以下一周某城市的天气温度走势 来理解绘图流程
    # 折线图
    # 折线图 ---要素:点  --->坐标(x,y)
    # (x1,y1) (x2,y2) ...(xn,yn) ---n个点的坐标
    # 注意:在绘制折线图时,要求单独传入横坐标、纵坐标,绘制的时候会一一对应
    #  准备 横轴数组 ---周一、周二、....、周日
    # 注意:如果横轴为中文,绘制的时候,需要用序号来代替中文,后续再替换过来
    x = np.arange(1, 8)
    #  准备 纵轴数组
    y = np.array([15, 20, 22, 23, 20, 18, 16])
    
    # 绘制折线图
    plt.plot(x, y)
    
    # 3、图形展示
    plt.show()
    

    三、折线图绘制

    折线图(line chart)是一种将数据点按照顺序连接起来的图形。可以看作是将散点图,按照 x 轴坐标顺序连接起来的图形

    折线图的主要功能是查看因变量y随着自变量x改变的趋势,最适合用于显示随时间(根 据常用比例设置)而变化的连续数据。同时还可以看出数量的差异,增长趋势的变化

    可以使用 plt.pyplot 绘制折线图

    matplotlib.pyplot.plot(*args, **kwargs)

    plot 函数在官方文档的语法中只要求填入不定长参数,实际可以填入的主要参数主要

    如下:

    参数名称说明
    x,y接收 array,表示 x 轴和 y 轴对应的数据。无默认
    color接收特定 string,指定线条的颜色。默认为 None
    linestyle接收特定 string。指定线条类型,默认为“-“
    marker接收特定 string。表示绘制的点的类型。默认为 None
    alpha接收 0-1 的小数。表示点的透明度。默认为 None

    在 pyplot 中几乎所有的默认属性都是可以控制的,例如视图窗口大小以及每英寸点数、 线条宽度、颜色和样式、坐标轴、坐标和网格属性、文本、字体等

    1、线条的常用参数的取值:

    rc参数名称解释取值
    lines.linewidth线条宽度取 0-10 之间的数值,默认为 1.5
    lines.linestyle线条样式可取“-”,“–”,“-.”,“:”四种,默认为“-”
    lines.marker线条上点的形状可取“o”,“D”,“h”,“.”,“,” ,“S”等 20 种,默认为 None
    lines.markersize点的大小取 0-10 之间的数值,默认为 1

    2、常用线条样式解释:

    linestyle 取值意义
    -实线
    长虚线
    -.点线
    :短虚线

    3、点的样式解释:

    marker 取值意义
    ‘o’圆圈
    ‘D’菱形
    ‘h’六边形 1
    ‘H’六边形 2
    ‘-’水平线
    ‘8’八边形
    ‘p’五边形
    ‘,’像素
    ‘+’加号
    ‘None’
    ‘.’
    ‘s’正方形
    ‘*’星号
    ‘d’小菱形
    ‘v’一角朝下的三角形
    ‘<’一角朝左的三角形
    ‘>’一角朝右的三角形
    ‘^’一角朝上的三角形
    ‘\’竖线
    ‘x’X

    4、常用颜色说明

    颜色缩写代表的颜色
    b蓝色
    g绿色
    r红色
    c青色
    m品红
    y黄色
    k黑色
    w白色

    另外需要注意:

    由于默认的 pyplot 字体并不支持中文字符的显示,因此需要通过设置 font.sans-serif 参数改变绘图时的字体,使得图形可以正常显示中文,同时,由于更改字体后,会导致坐标 轴中的部分字符无法显示,因此需要同时更改 axes.unicode_minus 参数

    支持中文代码示例:

    # 默认不支持中文 ---修改RC参数
    plt.rcParams['font.sans-serif'] = 'SimHei'
    # 增加字体之后变得不支持负号,需要修改RC参数让其继续支持负号
    plt.rcParams['axes.unicode_minus'] = False
    

    如果需要更改画布颜色、坐标轴字体颜色、坐标轴、边框颜色等,也可以去更改 rcParams 参数

    代码示例:

    # 颜色对照表
    # https://tool.oschina.net/commons?type=3
    # 如果需要更改画布颜色、坐标轴字体颜色、坐标轴、边框颜色等,也可以去更改 rcParams 参数
    # x轴字体颜色
    plt.rcParams['xtick.color'] = '#FFFFFF'
    
    # y轴字体颜色
    plt.rcParams['ytick.color'] = '#FFFFFF'
    
    # 背景颜色
    plt.rcParams['axes.facecolor'] = '#0D0434'
    
    # 边框颜色
    plt.rcParams['axes.edgecolor'] = '#FFFFFF'
    
    # 保存的画布的颜色
    plt.rcParams['savefig.facecolor'] = '#0D0434'
    

    更多设置可查看:matplotlibrc 文件

    以 xx 城市、yy 城市下一周天气温度走势为例,绘制折线图,以下为 xx 城市、yy 城市

    下一周天气温度表:

    ​ xx 城市和 yy 城市下一周天气温度表

    日期周一周二周三周四周五周六周日
    xx 城市天气温度(℃)15202223201816
    yy 城市天 气温度(℃)-10-8-12-10-8-6-1

    以下为绘制出的效果图:

    代码实现:

    # 导包
    import matplotlib.pyplot as plt
    import numpy as np
    
    # 1、创建画布
    # figsize : 画布大小,元组形式,可以给定画布的宽、高
    # dpi :像素大小
    # 返回值:画布对象
    plt.figure()
    # 默认不支持中文 ---修改RC参数
    plt.rcParams['font.sans-serif'] = 'SimHei'
    # 增加字体之后变得不支持负号,需要修改RC参数让其继续支持负号
    plt.rcParams['axes.unicode_minus'] = False
    
    # 如果需要更改画布颜色、坐标轴字体颜色、坐标轴、边框颜色等,也可以去更改 rcParams 参数
    # x轴字体颜色
    plt.rcParams['xtick.color'] = '#FFFFFF'
    
    # y轴字体颜色
    plt.rcParams['ytick.color'] = '#FFFFFF'
    
    # 背景颜色
    plt.rcParams['axes.facecolor'] = '#045332'
    
    # 边框颜色
    plt.rcParams['axes.edgecolor'] = '#FFFFFF'
    
    # 保存的画布的颜色
    plt.rcParams['savefig.facecolor'] = '#0D0434'
    
    # 2、绘图及修饰
    # 以下一周某城市的天气温度走势 来理解绘图流程
    # 折线图
    # 折线图 ---要素:点  --->坐标(x,y)
    # (x1,y1) (x2,y2) ...(xn,yn) ---n个点的坐标
    # 注意:在绘制折线图时,要求单独传入横坐标、纵坐标,绘制的时候会一一对应
    #  准备 横轴数组 ---周一、周二、....、周日
    # 注意:如果横轴为中文,绘制的时候,需要用序号来代替中文,后续再替换过来
    x = np.arange(1, 8)
    #  准备 纵轴数组
    y1 = np.array([15, 20, 22, 23, 20, 18, 16])
    
    y2 = np.array([-10, -8, -12, -10, -8, -6, 1])
    
    # 绘制折线图
    # 如果想要一张图中绘制多条折线,那么只需要多绘制几次就可以了
    # color : 线的颜色
    # linestyle : 线的样式
    # linewidth: 线的宽度
    # marker :点的样式
    # markersize :点的大小
    # markerfacecolor:点的填充颜色
    # markeredgecolor:点的边缘颜色
    plt.plot(x, y1, color='r', linestyle=':', linewidth=1.2, marker="*", markersize=7, markerfacecolor='b',
             markeredgecolor='g')
    plt.plot(x, y2, color='k', linestyle='-.', linewidth=1.2, marker="d", markersize=7, markerfacecolor='r',
             markeredgecolor='r')
    
    # 增加标题
    plt.title('下一周广州、哈尔滨天气温度走势')
    
    # 设置横轴名称
    plt.xlabel('日期')
    
    # 设置纵轴名称
    plt.ylabel('温度(℃ )')
    
    # 修改横轴刻度
    # 注意:如果是需要将刻度修改为中文,传递2个参数
    # 参数1 : 序号
    # 参数2 :设置的中文刻度
    xticks = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
    plt.xticks(x, xticks)
    
    # 修改纵轴刻度
    # 注意:如果只是重新设置刻度范围,只需要传递1个参数
    # 参数:新的刻度范围
    yticks = np.arange(-12, 33, 3)
    plt.yticks(yticks)
    
    # 增加图例
    # loc :表示 图例的设置位置
    plt.legend(['广州温度', '哈尔滨温度'], loc=0)
    
    # 进行标注
    # plt.text --->每次只能标记一个点
    # 循环标注
    for i, j in zip(x, y1):
        # 参数1 : 标注位置的横坐标
        # 参数2 : 标注位置的纵坐标
        # 参数3 : 标注的内容,字符串
        plt.text(i, j + 1, '%d℃' % j, horizontalalignment='center')
    
    for i, j in zip(x, y2):
        # 参数1 : 标注位置的横坐标
        # 参数2 : 标注位置的纵坐标
        # 参数3 : 标注的内容,字符串
        plt.text(i, j + 1, '%d℃' % j, horizontalalignment='center')
    
    # 保存图片
    plt.savefig('./下一周广州、哈尔滨天气温度走势.png')
    
    # 3、图形展示
    plt.show()
    

    折线图任务:

    绘制 2000-2017 各产业与行业的国民生产总值折线图

    通过绘制 2000-2017 各产业与行业的国民生产总值折线图,分别能够发现我国经济各产业与各行业增长趋势

    以下为绘制效果展示:

    代码实现:

    import matplotlib.pyplot as plt
    import numpy as np
    
    # 绘制2000-2017年各产业、行业季度生产增加总值的发展趋势折线图
    
    # 1、加载数据
    fp = np.load('./国民经济核算季度数据.npz', allow_pickle=True)
    # # 遍历
    # for k in fp:
    #     print(k)
    #  获取保存的数组
    columns = fp['columns']
    values = fp['values']
    
    print('columns:\n', columns)
    print('values:\n', values)
    
    # 2、绘制图形
    #  创建画布
    # figsize=(40, 20), dpi=80
    # 返回画布对象
    fig = plt.figure()
    # 默认不支持中文 ---修改RC参数
    plt.rcParams['font.sans-serif'] = 'SimHei'
    # 增加字体之后变得不支持负号,需要修改RC参数让其继续支持负号
    plt.rcParams['axes.unicode_minus'] = False
    
    # 设置子图间距
    # wspace=None,  ----> 子图之间的宽度间距 ---设置为[0,1]小数  --->子图宽度的占比
    # hspace=None   ----> 子图之间的高度间距 ---设置为[0,1]小数  --->子图高度的占比
    plt.subplots_adjust(hspace=0.2)
    
    # 绘制图形及修饰
    # 创建子图1
    fig.add_subplot(2, 1, 1)
    
    # 横轴  ---时间 --序号
    x = np.arange(values.shape[0])
    
    # 纵轴 --各个产业的增加总值
    y = values[:, 3:6]
    # y1 = values[:, 3]
    # y2 = values[:, 4]
    # y3 = values[:, 5]
    #
    # # 绘图
    plt.plot(x, y)
    # 注意:此时使用一个横轴,对应多列数据,拿出每一列与横轴一一对应去绘制折线图
    # plt.plot(x, y1)
    # plt.plot(x, y2)
    # plt.plot(x, y3)
    
    # 增加标题
    plt.title('2000-2017年各个产业、行业增加总值')
    
    # 纵轴名称
    plt.ylabel('生产总值(亿元)')
    
    # 从columns 中获取
    legend = [tmp[:4] for tmp in columns[3:6]]
    # 增加图例
    plt.legend(legend, loc=0, fontsize=5)
    
    # 修改横轴刻度
    # xticks = values[:, 1]
    # 参数rotation=45 -->旋转45°
    # plt.xticks(x[::4], xticks[::4], rotation=45)
    
    # 创建子图2
    fig.add_subplot(2, 1, 2)
    
    # 横轴  ---时间 --序号
    x = np.arange(values.shape[0])
    
    # 纵轴 --各个产业的增加总值
    y = values[:, 6:]
    # y1 = values[:, 3]
    # y2 = values[:, 4]
    # y3 = values[:, 5]
    #
    # # 绘图
    plt.plot(x, y)
    # 注意:此时使用一个横轴,对应多列数据,拿出每一列与横轴一一对应去绘制折线图
    # plt.plot(x, y1)
    # plt.plot(x, y2)
    # plt.plot(x, y3)
    
    
    # 纵轴名称
    plt.ylabel('生产总值(亿元)')
    
    # 从columns 中获取
    legend = [tmp[:2] for tmp in columns[6:]]
    # 增加图例
    plt.legend(legend, loc=0, fontsize=3)
    
    # 修改横轴刻度
    xticks = values[:, 1]
    # 参数rotation=45 -->旋转45°
    plt.xticks(x[::4], xticks[::4], rotation=45)
    
    # 保存图片
    plt.savefig('./2000-2017年各个产业、行业增加总值.png')
    # 图形展示
    plt.show()
    
    # 折线图的应用场景:
    # 用于查看数据的发展规律、趋势 ---折线图
    

    四、散点图绘制

    散点图(scatter diagram)又称为散点分布图,是以一个特征为横坐标,另一个特征 为纵坐标,利用坐标点(散点)的分布形态反映特征间的统计关系的一种图形

    值是由点在图表中的位置表示,类别是由图表中的不同标记表示,通常用于比较跨类别的数据

    另外,如果可以可以使用曲线拟合的散点,也可以用来反映数据的变化趋势,可以使用 plt.scatter 来绘制散点图

    plt.scatter(x, y, s=None, c=None, marker=None, alpha=None, **kwargs)

    参数名称说明
    x,y接收 array,表示 x 轴和 y 轴对应的数据,无默认
    s接收数值或者一维的 array,指定点的大小,若传入一维 array 则表示每个点的大小,默 认为 None
    c接收颜色或者一维的 array,指定点的颜色,若传入一维 array 则表示每个点的颜色,默认为 None
    marker接收特定 string,表示绘制的点的类型,默认为 None
    alpha接收 0-1 的小数,表示点的透明度,默认为 None

    以 2000-2017 年各个产业增加总值散点图为例,来绘制散点图

    以下为绘制效果展示:

    代码实现:

    import numpy as np
    import matplotlib.pyplot as plt
    
    # 1、加载数据
    fp = np.load('./国民经济核算季度数据.npz', allow_pickle=True)
    # # 遍历
    # for k in fp:
    #     print(k)
    #  获取保存的数组
    columns = fp['columns']
    values = fp['values']
    
    print('columns:\n', columns)
    print('values:\n', values)
    
    # 2、绘制图形
    # 2000-2017各个产业增加总值散点图
    # 创建画布
    plt.figure(figsize=(16, 14), dpi=80)
    # 默认不支持中文 ---修改RC参数
    plt.rcParams['font.sans-serif'] = 'SimHei'
    # 增加字体之后变得不支持负号,需要修改RC参数让其继续支持负号
    plt.rcParams['axes.unicode_minus'] = False
    
    # 绘图及修饰
    # 绘制散点图
    # x = np.array([1, 2, 3])
    #
    # y = np.array([5, 8, 4])
    
    # x-->横坐标
    # y ->纵坐标
    # s -->点的大小,可以传一个值,也可以传一个array表示各个点的大小
    # c -->点的颜色,可以传一个值,也可以传一个array表示各个点的颜色
    # marker --->点的样式
    # alpha --->透明度 [0,1],数值越小越透明,越大越凝实
    # 注意: x 和 y 必须是相同元素个数,一一对应关系
    # plt.scatter(x, y, s=[7, 12, 30], c=['r', 'g', 'b'], marker='*', alpha=1)
    
    
    # 构建横轴数据
    x = np.arange(values.shape[0])
    # 构建纵轴数据
    y1 = values[:, 3]
    y2 = values[:, 4]
    y3 = values[:, 5]
    
    # 绘制图形
    plt.scatter(x, y1, c='r', marker='*')
    plt.scatter(x, y2, c='k', marker='d')
    plt.scatter(x, y3, c='b', marker='o')
    
    # 修饰
    # 增加标题
    plt.title('2000-2017年各个产业增加总值散点图')
    
    # 横轴名称
    plt.xlabel('时间')
    
    # 纵轴名称
    plt.ylabel('生产总值(亿元)')
    
    # 修改横轴刻度
    plt.xticks(x[::4], values[:, 1][::4], rotation=45)
    
    # 增加图例
    legend = [tmp[:4] for tmp in columns[3:6]]
    plt.legend(legend, loc=0)
    
    # 保存图片
    plt.savefig('./2000-2017年各个产业增加总值散点图.png')
    
    # 图形展示
    plt.show()
    
    # 散点图应用场景:
    # 1、查看数据的发展规律、趋势
    # 2、查看数据的分布规律
    

    散点图任务:绘制 2000-2017 各产业与行业的国民生产总值散点图

    国民生产总值数据总共有三大产业的国民生产总值,以及农业、工业、建筑、批发、交通、餐饮、金融、房地产和其他行业各个季度的增加值

    通过散点图分析三大行业的国民生产总值可以发现我国产业结构。通过比较各行业间季 度的增加值则可以发现国民经济的主要贡献行业

    以下为绘制效果展示:

    五、柱状图绘制

    柱状图(bar chart)是一种以长方形的长度为变量的表达图形的统计报告图,由一系列 高度不 等的纵向条纹表示数据分布的情况,用来比较两个或以上的价值(不同时间或者不 同条件),只有一个变量,通常利用于较小的数据集分析,用柱状图可以比较直观地看出各组数据之间的差别

    matplotlib.pyplot.bar(left,height,width = 0.8,bottom = None,hold = None, data = None**kwargs)

    常用参数及说明如下表所示:

    参数名称说明
    left接收 array,表示 x 轴数据,无默认
    height接收 array,表示 x 轴所代表数据的数量,无默认
    width接收 0-1 之间的 float,指定直方图宽度,默认为 0.8
    color接收特定 string 或者包含颜色字符串的 array,表示直方图颜色,默认为 None

    以 2000 年、2017 年各个产业、行业对比为例,绘制柱状图:

    以下为绘制效果展示:

    代码实现:

    import matplotlib.pyplot as plt
    import numpy as np
    
    # 柱状图---高低不同的长方形柱子来表示,各柱子之间一般存在间距
    # 主要用于对比不同类别的数据,可以直观的得到不同类别的差距
    # 比较类别不宜过多,一般不超过9类,适用于少量数据
    
    # plt.bar --->用来绘制柱状图
    
    # 绘制2000、2017年各个产业、行业对比柱状图
    
    # 1、加载数据
    fp = np.load('./国民经济核算季度数据.npz', allow_pickle=True)
    # # 遍历
    # for k in fp:
    #     print(k)
    #  获取保存的数组
    columns = fp['columns']
    values = fp['values']
    
    print('columns:\n', columns)
    print('values:\n', values)
    
    # 2、绘图
    # 创建画布
    fig = plt.figure()
    # 默认不支持中文 ---修改RC参数
    plt.rcParams['font.sans-serif'] = 'SimHei'
    # 增加字体之后变得不支持负号,需要修改RC参数让其继续支持负号
    plt.rcParams['axes.unicode_minus'] = False
    
    # 绘图及修饰
    # 添加子图
    fig.add_subplot(2, 2, 1)
    # 2000年第一季度 各个产业对比柱状图
    # x--->横轴坐标
    # height --->柱子的高度 ---即 x 所一一对应的 y值
    # width --->柱子的宽度 ---默认是0.8
    # color--->柱子的颜色
    x = np.arange(1, 4)
    #
    y = values[0, 3:6]  # --->2000年第一季度的 第一、第二、第三产业的值
    # 绘图
    plt.bar(x, y, width=0.5, color='#6495ED')  # color='r'
    
    # 增加标题
    plt.title('2000年第一季度各个产业增加总值对比柱状图')
    
    # 横轴名称
    plt.xlabel('产业')
    
    # 纵轴名称
    plt.ylabel('生产总值(亿元)')
    
    # 修改横轴刻度
    xticks = [tmp[:4] for tmp in columns[3:6]]
    plt.xticks(x, xticks)
    
    # # 标注
    for i, j in zip(x, y):
        plt.text(i, j, '%.2f亿元' % j, horizontalalignment='center')
    
    # 柱状图不需要 图例
    
    fig.add_subplot(2, 2, 2)
    
    fig.add_subplot(2, 2, 3)
    
    fig.add_subplot(2, 2, 4)
    
    # 图形展示
    plt.show()
    

    六、直方图绘制

    直方图(Histogram)又称质量分布图,是统计报告图的一种,由一系列高度不等的纵 向条纹或线段表示数据分布的情况,一般用横轴表示数据所属类别,纵轴表示数量或者占比

    用直方图可以比较直观地看出产品质量特性的分布状态,便于判断其总体质量分布情况,直方图可以发现分布表无法发现的数据模式、样本的频率分布和总体的分布

    matplotlib.pyplot.hist( x,bins=10,range=None, normed=False,weights=None,cumulative=False,bottom=None,histtype=u’bar’,align=u’mid’,orientation=u’vertical’,rwidth=None,log=False,color=None,label=None,stacked=False,hold=None,**kwargs )

    参数名称说明
    x(n,) array or sequence of (n,) arrays 这个参数是指定每个 bin(箱子)分布 的数据,对应 x 轴
    binsinteger or array_like, optional,这个参数指定 bin(箱子)的个数,也就是总 共有几条条状图
    colorcolor or array_like of colors or None, optional,这个指定条状图的颜色

    以 xx 班级学员的身高分布为例,绘制直方图,以下为某班级学员身高统计表:

    身高(cm)143.7154.7162.5172.6153.2174.4

    以下为绘制效果展示:

    代码实现:

    import matplotlib.pyplot as plt
    import numpy as np
    
    # 直方图---质量分布图 ---用来查看的数据的分布状态
    # 也是由高低不同的柱子组成,一般情况下,柱子之间是连续
    # 横轴 ---数据的分布区间
    # 纵轴 ---各个区间内的数据的数量
    # 适用于大量数据
    
    # plt.hist  --->用来绘制直方图
    
    # 假设某班级 存在30名同学, 查看该班级同学的身高分布范围
    
    # 1、先生成30名同学身高数据 --随机生成
    hight = np.random.uniform(low=140, high=190, size=30)
    print('hight:\n', hight)
    # 身高是保留一位小数
    hight = np.array([float('%.1f' % tmp) for tmp in hight])
    print('保留一位小数的身高:\n', hight)
    
    # 1、创建画布
    plt.figure()
    # 默认不支持中文 ---修改RC参数
    plt.rcParams['font.sans-serif'] = 'SimHei'
    # 增加字体之后变得不支持负号,需要修改RC参数让其继续支持负号
    plt.rcParams['axes.unicode_minus'] = False
    
    # 2、绘图及修饰
    # x --->真实绘制直方图的数据
    # bins --->分组状态,可以是指定分组的组数,或者是一个array,表示分组节点
    # 绘制直方图
    # plt.hist(hight, bins=5) # 系统默认分组
    # 自定义分组
    # bins = [140, 150, 160, 170, 180, 190]
    # orientation='horizontal' # 水平显示直方图
    # rwidth --->柱子的宽度,默认为1
    # plt.hist(hight, bins=bins, edgecolor='k')  # color='r' -->柱子的颜色
    
    # 自定义等宽
    # (1) 确定分组组数
    group_num = 5
    
    # (2) 确定数据 最大值、最小值
    max_height = np.max(hight, axis=0)
    min_height = np.min(hight, axis=0)
    
    print('身高的最大值:\n', max_height)
    print('身高的最小值:\n', min_height)
    
    # (3)确定组内间距
    # (最大-最小) / 分组个数  --->向上取整   ---> int
    #  np.ceil --->向上取整
    #  np.floor --->向下取整
    width = np.ceil((max_height - min_height) / group_num)
    
    #  (4) 确定分组节点
    # 结尾+ width 的原因: 是为了最后一个区间肯定包含最大值
    bins = np.arange(min_height, max_height + width, width)
    
    print('bins:\n', bins)
    
    # 绘图
    plt.hist(hight, bins=bins, edgecolor='k',color='#6495ED')
    
    # 修改刻度
    plt.xticks(bins)
    
    # 增加网格线
    plt.grid(b=True, axis='y', alpha=0.2)
    
    # 直方图 不需要设置图例
    
    # 设置标题
    plt.title('班级的同学身高分布直方图')
    
    # 横轴名称
    plt.xlabel('身高')
    
    # 纵轴名称
    plt.ylabel('人数(个)')
    
    # 保存图片
    plt.savefig('./班级的同学身高分布直方图.png')
    
    # 3、图形展示
    plt.show()
    

    通过绘制了柱状图、直方图,那么柱状图、直方图长的非常类似,它们又有什么区别呢?

    直方图和柱状图最让人迷惑的地方,就是它们长得非常相似

    实际上,直方图和柱状图 无论是在图表意义、适用数据上,还是图表绘制上,都有很大的不同,主要分为以下区别:

    (1)直方图展示数据的分布,柱状图比较数据的大小

    (2)直方图 X 轴为定量数据,柱状图 X 轴为分类数据

    (3)直方图柱子无间隔,柱状图柱子有间隔

    (4)直方图柱子宽度可不一,柱状图柱子宽度须一致。 那么到底使用直方图需要注意哪些点?

    (1)注意组距,组距会影响直方图呈现出来的数据分布,因此在绘制直方图的时候需 要多次尝试改变组距

    (2)X 轴上为左闭右开区间

    (3)注意 Y 轴所代表的变量

    七、饼图绘制

    饼图(Pie Graph)是将各项的大小与各项总和的比例显示在一张“饼”中,以“饼” 的大小来确定每一项的占比。饼图可以比较清楚地反映出部分与部分、部分与整体之间的比例关系,易于显示每组数据相对于总数的大小,而且显现方式直观

    pie 函数:
    matplotlib.pyplot.pie(x,explode=None,labels=None,colors=None,autopct=None,pctdistance=0.6,shadow=False,labeldistance=1.1,startangle=None,radius=None, … )

    常用参数及说明如下表所示:

    参数名称说明
    x接收 array,表示用于绘制饼的数据, 无默认
    autopct接收特定 string,指定数值的显示方式,默认为 None
    explode接收 array,表示指定项离饼图圆心 为 n 个半径,默认为 None
    pctdistance接收 float,指定每一项的比例和距离饼 图圆心 n 个半径,默认为 0.6
    labels接收 array,指定每一项的名称,默 认为 None
    labeldistance接收 float,指定每一项的名称和距离饼 图圆心多少个半径,默认1.1
    color接收特定 string 或者包含颜色字符 串的 array,表示饼图颜色,默认为 None
    radius接收 float。表示饼图的半径,默认为 1

    以 2017 年第一季度各个产业增加总值占比为例,绘制饼图:

    绘制效果展示:

    代码实现:

    import numpy as np
    import matplotlib.pyplot as plt
    
    # 饼图---将各项数据绘制在一张饼中,用以对比部分与部分、部分与整体的关系。
    
    # plt.pie来进行绘制饼图。
    
    # 2017年第一季度各个产业增加总值占比饼图
    
    # 1、加载数据
    fp = np.load('./国民经济核算季度数据.npz', allow_pickle=True)
    # # 遍历
    # for k in fp:
    #     print(k)
    #  获取保存的数组
    columns = fp['columns']
    values = fp['values']
    
    print('columns:\n', columns)
    print('values:\n', values)
    
    # 2、绘图
    # 创建画布
    plt.figure()
    # 默认不支持中文 ---修改RC参数
    plt.rcParams['font.sans-serif'] = 'SimHei'
    # 增加字体之后变得不支持负号,需要修改RC参数让其继续支持负号
    plt.rcParams['axes.unicode_minus'] = False
    
    # 绘制图形及修饰
    # x --->需要绘制饼图的数据
    x = values[-1, 3:6]
    # 绘制饼图
    # explode --->各部分远离饼心的距离(半径),或者:两两之间的缝隙的大小
    explode = (0.01, 0.01, 0.02)
    # labels --->指的是各部分的名称
    labels = [tmp[:4] for tmp in columns[3:6]]
    
    # colors --->各部分的颜色
    colors = ['r', 'g', 'b']
    # autopct ---> 占比的数值
    autopct = '%.1f%%'
    # pctdistance=0.6  --->占比的数值 位置
    # shadow --->阴影
    shadow = True
    # labeldistance=1.1 --->labels 的位置
    # radius -->半径的大小,默认为 1
    # center : 中心位置
    # wedgeprops={'linewidth': 10} 阴影边线
    plt.pie(x, explode=explode, labels=labels, autopct=autopct,
            shadow=shadow)  # colors=colors
    
    # 设置图例
    plt.legend(labels)
    
    # 设置标题
    plt.title('2017年第一季度各个产业增加总值占比饼图')
    
    # 保存图片
    plt.savefig('./2017年第一季度各个产业增加总值占比饼图.png')
    
    # 图形展示
    plt.show()
    

    八、箱线图绘制

    箱线图(boxplot)也称箱须图,其绘制需使用常用的统计量,能提供有关数据位置和分散情况的关键信息,尤其在比较不同特征时,更可表现其分散程度差异,箱线图利用数据 中的五个统计量(最小值、下四分位数、中位数、上四分位数和最大值)来描述数据,它也 可以粗略地看出数据是否具有对称性、分布的分散程度等信息,特别可以用于对几个样本的比较

    箱线图外形:

    boxplot 函数:matplotlib.pyplot.boxplot(x,notch=None,sym=None,vert=None,whis=None,positions=None,widths=None,patch_artist=None,meanline=None,labels=None, … )

    常用参数及说明如下表所示:

    参数名称说明
    x接收 array,表示用于绘制箱线图的数据,无默认
    positions接收 array,表示图形位置,默认为 None
    notch接收 boolean,表示中间箱体是否有 缺口。默认为 None
    widths接收 scalar 或者 array,表示每个箱 体的宽度。默认为 None
    sym接收特定 sting,指定异常点形状,默 认为 None
    labels接收 array,指定每一个箱线图的标 签,默认为 None
    vert接收 boolean,表示图形是横向纵向 或者横向,默认为 None
    meanline接收 boolean,表示是否显示均值线,默认为 False

    以 2000-2017 年各个产业增加总值为例,绘制箱线图:

    绘制效果展示:

    代码实现:

    import matplotlib.pyplot as plt
    import numpy as np
    
    # 箱线图--外形类似于风箱,使用5个统计指标量(最小值、
    # 下四分位数、中位数、上四分位数、最大值)来描述数据。
    # 查看数据是否对称、分散情况。
    
    # 查看箱子的长度 来获取数据是否对称、以及分散程度的大小
    
    # (剔除异常值的功能---后续再去看)
    
    # plt.boxplot -->绘制箱线图
    
    # 1、加载数据
    fp = np.load('./国民经济核算季度数据.npz', allow_pickle=True)
    # # 遍历
    # for k in fp:
    #     print(k)
    #  获取保存的数组
    columns = fp['columns']
    values = fp['values']
    
    print('columns:\n', columns)
    print('values:\n', values)
    
    # 2、绘图
    # 创建画布
    plt.figure()
    # 默认不支持中文 ---修改RC参数
    plt.rcParams['font.sans-serif'] = 'SimHei'
    # 增加字体之后变得不支持负号,需要修改RC参数让其继续支持负号
    plt.rcParams['axes.unicode_minus'] = False
    
    # 绘图及修饰
    # 2000-2017年第一产业的增加总值的箱线图
    # x--->绘制箱线图的数据
    # 有些版本中,必须将整个箱子的数据作为一个整体,可以将一个箱子的数据作为一个元组的元素
    x = (values[:, 3], values[:, 4], values[:, 5])
    # notch ---是否开缺口  --置信区间(confidence interval -->CI)
    # sym --异常值的标注样式
    # vert  ---控制着箱线图的方向,vert=False 水平箱线图
    # meanline -->均线 必须和 showmeans 才能显示均值线
    # labels ---> 各个箱子的名称
    labels = ['第一产业', '第二产业', '第三产业']
    # positions ---> 位置 --->指定箱子显示的位置,一般为默认
    # positions=[3, 2, 1]
    plt.boxplot(x, notch=True, sym='*', meanline=True, showmeans=True, labels=labels)
    
    # 增加标题
    plt.title('2000-2017年各个产业增加总值箱线图')
    # 增加横轴名称
    plt.xlabel('产业')
    # 增加纵轴名称
    plt.ylabel('生产总值(亿元)')
    # 保存图片
    plt.savefig('./2000-2017年各个产业增加总值箱线图.jpeg')
    # 不需要图例
    
    # 图形展示
    plt.show()
    

    九、K 线图绘制

    K 线图形态可分为反转形态、整理形态及缺口和趋向线等,后 K 线图因其细腻独到的标画方式而被引入到股市及期货市场,股市及期货市场中的 K 线图的画法包含四个数据,即开 盘价、最高价、最低价、收盘价,所有的 k 线都是围绕这四个数据展开,反映大势的状况和价格信息。如果把每日的 K 线图放在一张纸上,就能得到日 K 线图,同样也可画出周 K 线图、 月 K 线图

    其中开盘价、最高价、最低价、收盘价的理解:

    开盘价: 开盘价又称开市价,是指某种证券在证券交易所每个交易日开市后的第一笔每股买卖成交价格。

    收盘价: 收盘价为当日该证券最后一笔交易前一分钟所有交易的成交量加权平均价(含最后一笔 交易)。当日无成交的,以前收盘价为当日收盘价。

    最高价: 指某种证券在每个交易日从开市到收市的交易过程中所产生的最高价格。如果当日该种 证券成交价格没有发生变化,最高价就是即时价;若当日该种证券停牌,则最高价就是前收 市价。

    最低价: 最低价指某种证券在每个交易日从开市到收市的交易过程中所产生的最低价格

    以 tushare 中的股票数据为例,绘制 K 线图,以下为股票代码为 600728 的股票的 ohlc 数据:

    绘制效果展示:

    代码示例:

    import tushare  as ts
    import mpl_finance as mpf
    import matplotlib.pyplot as plt
    import numpy as np
    
    # 需要安装tushare  + 清华   源
    # pip install tushare -i https://pypi.tuna.tsinghua.edu.cn/simple
    # 需要安装 mpl_finance
    # pip install mpl_finance -i https://pypi.tuna.tsinghua.edu.cn/simple
    
    # 从tushare 中获取某一支 股票的交易信息
    # 获取股票信息
    # code ---股票代码
    # start-- 开始日期
    # ktype='D' ---每个交易日都查询
    # autype='qfq' --复权
    data = ts.get_k_data('600728', start='2020-01-01', ktype='D')
    print('data:\n', data)
    
    # 时间  ---ohlc
    # 获取数据
    price = data[['open', 'high', 'low', 'close']].values
    
    # 绘制
    time = np.arange(price.shape[0]).reshape((-1, 1))
    
    # 拼接合并
    plt_data = np.concatenate((time, price), axis=1)
    
    # 1、创建画布
    fig = plt.figure()
    
    # 2、绘制图形
    # 先获取坐标系
    ax = fig.add_axes([0.1, 0.3, 0.8, 0.6])
    
    # ax ---坐标系
    # quotes --->数据---》sequence of (time, open, high, low, close, ...)
    mpf.candlestick_ohlc(ax, plt_data, colorup='r', colordown='g', width=0.5)
    # 设置横轴刻度
    plt.xticks(np.arange(price.shape[0])[::30], data['date'][::30], rotation=45)
    # 3、图形展示
    plt.show()
    

    十、雷达图

    之前所讲的绘制图形的数据都是二维数据,那么如果想要查看高维度的数据,那么需要 绘制另外一种图形——雷达图

    雷达图可以查看该样本在不同特征的得分,来评价该样本。雷达图在游戏中、企业员工 评测中频繁使用。如,以下为王者荣耀玩家中某玩家的王者战报情况:

    到底如何绘制雷达图?

    可以使用 plt.polar 来绘制雷达图

    以某玩家的王者荣耀战绩信息为例,绘制雷达图,来查看该玩家的战力情况,是否是“大 腿”,以下为该玩家的对战信息:

    生存评分输出评分团战评分KDA发育评分
    23.544.55

    绘制结果展示:

    代码实现:

    import matplotlib.pyplot as plt
    import numpy as np
    
    # 可以从不同的角度来评价数据对象
    # 可以用来绘制高维度数据  --->长度超过2的一维数组
    # person [hight,weight] --->二维空间
    # person [hight,weight,score,math,...] --->n维空间
    
    # 可以使用雷达图将 高维度 数据 --在平面中描述
    
    
    # 以某玩家的王者战报 --- 雷达图绘制 --从不同的属性来查看该是否是大腿?
    
    # 极坐标
    
    
    # 1、创建画布
    plt.figure()
    # 默认不支持中文 ---修改RC参数
    plt.rcParams['font.sans-serif'] = 'SimHei'
    # 增加字体之后变得不支持负号,需要修改RC参数让其继续支持负号
    plt.rcParams['axes.unicode_minus'] = False
    
    # 2、绘制图形
    datalength = 5
    # 准备角度
    angle = np.linspace(0, 2 * np.pi, datalength, endpoint=False)
    print('angle:\n', angle)
    # 闭合角度
    angle = np.concatenate((angle, [angle[0]]), axis=0)
    print('angle:\n', angle)
    # # 准备数据
    data = np.array([2, 3.5, 4, 4.5, 5])
    # 数据闭合
    data = np.concatenate((data, [data[0]]), axis=0)
    print('data:\n', data)
    # # 雷达图
    plt.polar(angle, data, color='r', marker='*', markersize=12)
    
    #
    ticks = ['生存评分', '输出评分', '团战评分', 'KDA', '发育评分']
    
    # 修改刻度
    plt.xticks(angle[:-1], ticks)
    
    # 3、图形展示
    plt.show()
    
    展开全文
  • 一、工具:python的matplotlib.pyplot 二、案例: import matplotlib.pyplot as plt import numpy as np #添加图形属性 plt.xlabel('Age range') plt.ylabel('Number') plt.title('The statistics of face age ...
  • 主要介绍了Python基于Matplotlib库简单绘制折线图的方法,涉及Python Matplotlib库的相关使用技巧,需要的朋友可以参考下
  • 通过Matplotlib中简单的接口可以快速的绘制2D图表 初试Matplotlib Matplotlib中的pyplot子提供了和matlab类似的绘图API. 复制代码 代码如下: import matplotlib.pyplot as plt #导入pyplot子 plt.figure...
  • python学习所需的,包内含numpy-1.11.2.tar.gz,适合初学者,附安装方法]
  • import matplotlib.pyplot as plt plt.polar() plt.show() 绘制一个极坐标点 import numpy as np import matplotlib.pyplot as plt plt.polar(0.25*np.pi,20,'ro',lw=2) plt.ylim(0,50) plt.show() 绘制多个极坐标...
  • 这篇文章主要介绍了python matplotlib库的基本使用帮助大家绘制图表进行数据可视化分析感兴趣的朋友可 以了 下 matplotlib简介介 如果你在大学里参加过数学建模竞赛或者是用过MATLAB的话相比会对这一款软件中的画图...
  • 用python和matplotlib库生成迷宫
  • 主要为大家详细介绍了使用Python的matplotlib库生成随机漫步图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 安装matplotlib需要的基本必需文件,Matplotlib安装时必需numpy, dateutil, pytz, pyparsing, cycler, setuptools, 可选 pillow, pycairo, tornado, wxpython, pyside, pyqt4, ghostscript, miktex, ffmpeg, ...
  • 介绍Python的Matplotlib库

    2020-06-13 21:54:10
    作为定期撰写出版物的研究人员,我经常面临制作整齐的图表的... 在我遇到Python的图书馆matplotlib ,这个问题开始减少,该图书馆产生了如此整洁的图表。 如图书馆网站所述: matplotlib是一个python 2D绘图库,...

    作为定期撰写出版物的研究人员,我经常面临制作整齐的图表的问题。 这对我来说并不总是那么容易,我不得不尽我所能使用最好的工具,但是我对大部分时间生成的图形并不满意。 我一直想知道其他研究人员是如何制作出整洁的图的!

    在我遇到Python的图书馆matplotlib ,这个问题开始减少,该图书馆产生了如此整洁的图表。 如图书馆网站所述:

    matplotlib是一个python 2D绘图库,它以多种硬拷贝格式和跨平台的交互式环境生成出版物质量数据。 matplotlib可以在Python脚本中,Python和使用IPython的壳(ALA MATLAB® *或数学®),Web应用程序服务器,和六个图形用户界面工具包。 matplotlib尝试使容易的事情变得容易而使困难的事情变得可能。 您只需几行代码就可以生成图表,直方图,功率谱,条形图,误差图,散点图等。

    在本教程中,我将向您展示如何安装matplotlib ,然后为您提供一些示例。

    安装matplotlib

    安装matplotlib非常简单。 我目前正在Mac OS X机器上工作,因此我将向您展示如何在该操作系统上安装该库。 有关在其他操作系统上安装matplotlib更多信息,请参见matplotlib安装页面

    可以通过在终端中运行以下命令来安装matplotlib (我将使用pip ,但您可以使用其他工具 ):

    curl -O https://bootstrap.pypa.io/get-pip.py
    python get-pip.py
    pip install matplotlib

    而已。 现在,您已经启动并运行了matplotlib 。 就这么简单!

    绘制基本图

    现在让我们来看一些使用matplotlib示例。 第一组示例将绘制一些基本图。

    线图

    让我们考虑一个使用matplotlib绘制线图的简单示例。 在这种情况下,我们将使用matplotlib.pyplot ,它提供了类似于MATLAB的绘图框架。 换句话说,它提供了命令样式功能的集合,使matplotlib可以像MATLAB一样工作。

    假设我们要为以下点设置一条线:

    x = (4,8,13,17,20)
    y = (54, 67, 98, 78, 45)

    可以使用以下脚本完成此操作:

    import matplotlib.pyplot as plt
    plt.plot([4,8,13,17,20],[54, 67, 98, 78, 45])
    plt.show()

    注意,我们将xy点表示为list

    在这种情况下,结果将如下所示:

    线图

    上图中的线是根据形状和颜色为我们绘制的默认线。 我们可以通过使用MATLAB 图形文档中的一些符号(指定符)更改线条的形状和颜色来自定义线条。 假设我们要用钻石标记画一条绿色 虚线 在这种情况下,我们需要的说明符是: 'g--d' 。 在上面的脚本中,我们将说明符放置如下:

    plt.plot([4,8,13,17,20],[54, 67, 98, 78, 45],'g--d')

    在这种情况下,图线图将如下所示:

    线图

    散点图

    散点图是显示两组数据之间关系的图形,例如年龄和身高之间的关系。 在本节中,我将向您展示如何使用matplotlib绘制散点图。

    让我们拿两套数据xy ,我们想要找到它们的关系(散点图):

    x = [2,4,6,7,9,13,19,26,29,31,36,40,48,51,57,67,69,71,78,88]
    y = [54,72,43,2,8,98,109,5,35,28,48,83,94,84,73,11,464,75,200,54]

    可以使用以下脚本绘制散点图:

    import matplotlib.pyplot as plt
    x = [2,4,6,7,9,13,19,26,29,31,36,40,48,51,57,67,69,71,78,88]
    y = [54,72,43,2,8,98,109,5,35,28,48,83,94,84,73,11,464,75,200,54]
    plt.scatter(x,y)
    plt.show()

    该脚本的输出为:

    散点图

    当然,除了其他设置外,您还可以更改标记的颜色,如文档所示。

    直方图

    直方图是使用条形图显示数据频率的图表,其中数字按范围分组。 换句话说,使用直方图显示列表中每个数据元素的频率。 范围形式的分组数字称为bin 。 让我们看一个示例以进一步了解这一点。

    假设要查找直方图的数据列表如下:

    x = [2,4,6,5,42,543,5,3,73,64,42,97,63,76,63,8,73,97,23,45,56,89,45,3,23,2,5,78,23,56,67,78,8,3,78,34,67,23,324,234,43,544,54,33,223,443,444,234,76,432,233,23,232,243,222,221,254,222,276,300,353,354,387,364,309]

    我们可以用来显示上述数据的直方图的Python脚本是:

    import matplotlib.pyplot as plt
    x = [2,4,6,5,42,543,5,3,73,64,42,97,63,76,63,8,73,97,23,45,56,89,45,3,23,2,5,78,23,56,67,78,8,3,78,34,67,23,324,234,43,544,54,33,223,443,444,234,76,432,233,23,232,243,222,221,254,222,276,300,353,354,387,364,309]
    num_bins = 6
    n, bins, patches = plt.hist(x, num_bins, facecolor = 'green')
    plt.show()

    运行脚本时,应该获得类似于下图(直方图)的内容:

    直方图

    当然,函数hist()还有更多参数,如文档所示。

    进一步阅读

    本教程是在Python中使用图形的表面介绍。 matplotlib还有更多功能,您可以使用该库做很多有趣的事情。

    如果您想了解有关matplotlib更多信息并查看可以使用此库创建的其他类型的图形,则可以在matplotlib网站的示例部分中找到一个位置。 也有一些关于该主题的有趣书籍,例如Mastering matplotlibMatplotlib Plotting Cookbook

    结论

    正如我们在本教程中看到的那样,可以利用第三方库将Python扩展为执行有趣的任务。 我已经展示了这样一个库的示例,即matplotlib

    正如我在本教程的简介中提到的那样,对我而言,制作整洁的图形不是一件容易的事,尤其是当您想在科学出版物中展示此类图形时。 matplotlib提供了解决此问题的方法,因为您不仅可以轻松地生成美观的图形,而且还可以控制此类图形(例如,参数),因为您使用的是编程语言来生成图形,在我们的例子中是Python。

    翻译自: https://code.tutsplus.com/tutorials/introducing-matplotlib--cms-26543

    展开全文
  • Python三三维维绘绘图图之之Matplotlib库库的的使使用用方方法法 这篇文章主要给大家介绍了关于Python三维绘图之Matplotlib库的使用方法文中通过示例代码介绍的非常详细 对大家的学习或者工作 有一定的参考学习价值...
  • 第6章 数据可视化 Matplotlib库; 在数据分析中数据可视化是一个很重要的部分数据可视化不仅是展示数据分析的结果而且更重要的是利用数据可视化来进行数据分析如发现数据样本中的异常值观察数据的分布寻找数据之间的...
  • import matplotlib.pyplot as plt import matplotlib as mpl data = pd.read_csv('taobao_data.csv', index_col='\u4f4d\u7f6e') data.drop(['宝贝', '卖家'], inplace=True, axis=1) data = data.groupby(['位置'])...
  • Matplotlib库的介绍及pyplot子库的使用 Matplotlib是一个综合库,用于在Python中创建静态,动画和交互式可视化。 Matplotlib库的效果:https://matplotlib.org/gallery.html Matplotlib库由各种可视化类构成,内部...

    Matplotlib库的介绍及pyplot子库的使用

    Matplotlib是一个综合库,用于在Python中创建静态,动画和交互式可视化。
    Matplotlib库的效果:https://matplotlib.org/gallery.html

    Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发。
    Matplotlib.pyplot是绘制各类可视化图形的命令命令子库,相当于快捷方式。

    import matplotlib.pyplot as plt
    plt.plot([3,1,4,5,2])			
    plt.ylabel('grade')
    plt.savefig('test', dpi=600) 	 #保存为PNG文件
    plt.show()
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UcJE4KER-1612424789791)(d:\Users\16229\Desktop\培训\刘杰201803603\image-20210203210636270.png)]
    tip:plt.savefig()将输出图形存储为文件,默认为PNG格式,可以骑过dpi修改输出质量。dpi指每一英寸包含点的数量。保存位置为当前python文件目录下。

    import matplotlib.pyplot as plt
    plt.plot([0,2,4,6,8],[3,1,4,5,2])
    plt.ylabel('grade')
    plt.axis([-1,10,0,6])
    plt.show()
    

    在这里插入图片描述

    tip:plt.axis([-1,10,0,6])其中-1为x轴的起始坐标,10为x轴的终止坐标,0为y轴的起始坐标,6为y轴的终止坐标

    pyplot的绘图区域

    最简单的分割绘图区域方法:plt.subplot(nrows,ncols,plot_number)
    nrows:横轴数量
    ncols:纵轴数量
    plot_number:当前绘图区为第几区域
    **tip:**在全局绘图区域中创建一个分区体系,并定位到一个子绘图区域

    import numpy as np
    import matplotlib.pyplot as plt
    def f(t):		#能量衰减公式
        return np.exp(-t) * np.cos(2*np.pi*t)
    a = np.arange(0.0,5.0,0.02)
    plt.subplot(211)
    plt.plot(a, f(a))
    plt.subplot(2,1,2)
    plt.plot(a, np.cos(2*np.pi*a),'r--')
    plt.show()
    

    在这里插入图片描述

    plt.plot()

    格式:plt.plot(x,y,format_string,**kwargs)
    x:X轴数据,列表或数组,可选
    y:Y轴数据,列表或数组。
    format_string:控制曲线的格式字符串,可选
    **kwargs:第二组或更多(x,y,format_string)
    **tip:**当绘制多条曲线时,各条曲线的x不能省略。

    import matplotlib.pyplot as plt
    import numpy as np
    a = np.arange(10)
    plt.plot(a,a*1.5,a,a*2.5,a,a*3.5,a,a*4.5)
    plt.show()
    

    在这里插入图片描述

    format_string:控制曲线的格式字符串,可选。由颜色字符,风格字符和标记标记字符组成
    颜色字符说明颜色字符说明
    ‘b’蓝色‘m’洋红色 magenta
    ‘g’绿色‘y’黄色
    ‘r’红色‘k’黑色
    ‘c’青绿色 cyan‘w’白色
    ‘#008000’RGB某颜色‘0.8’灰度值字符串
    风格字符说明
    ‘-’实线
    ‘–’破折线
    ‘-.’点划线
    ‘:’虚线
    ‘’ ’ '(空或者空格)无线条
    标记字符说明标记字符说明标记字符说明
    ‘.’点标记‘1’下花三角标记‘h’竖六边形标记
    ‘,’像素标记(极小点)‘2’上花三角标记‘H’横六边形标记
    ‘o’实心圆标记‘3’左花三角标记‘+’十字标记
    ‘v’倒三角标记‘4’左花三角标记‘x’x标记
    ‘^’上三角标记‘s’实心方形标记‘D’菱形标记
    ‘>’右三角标记‘p’实心五角标记‘d’瘦菱形标记
    ‘<’左三角标记‘**’星形标记‘|’垂直线标记
    import matplotlib.pyplot as plt
    import numpy as np
    a = np.arange(10)
    plt.plot(a, a*1.5, 'go-', a, a*2.5, 'rx', a, a*3.5, '*', a, a*4.5, 'b-.')
    plt.show()
    

    在这里插入图片描述

    tip:
    **kwargs:第二组或更多(x,y,format_string)
    color:控制颜色,color=‘green’
    linestyle:线条风格,linestyle=‘dashed’
    marker:标记风格,marker=‘o’
    markerfacecolor:标记颜色,markerfacecolor=‘blue’
    markersize:标记尺寸,markersize=20

    pyplot的中文显示

    1. rcParams:修改全局字体

      import matplotlib.pyplot as plt
      import matplotlib
      matplotlib.rcParams['font.family'] = 'SimHei'   #'SimHei'是黑体
      plt.plot([3,1,4,5,1])
      plt.ylabel('纵轴(值)')
      plt.show()
      

    在这里插入图片描述

    属性说明
    ‘font.family’用于显示字体的名字
    ‘font.style’字体风格,正常’normal’或斜体’italic’
    ‘font.size’字体大小,整数字号或者’large’、‘x-small’
    'font.family’中文字体(部分)说明
    ‘SimHei’中文黑体
    ‘Kaiti’中文楷体
    ‘Lisu’中文隶书
    ‘FangSong’中文仿宋
    ‘YouYuan’中文幼圆
    ‘STSong’华文宋体
    1. fontproperties:在有中文输出的地方,修改字体样式

      import numpy as np
      import matplotlib.pyplot as plt
      a = np.arange(0.0,5.0,0.02)
      plt.xlabel('横轴:时间', fontproperties='SimHei', fontsize=20)
      plt.ylabel('纵轴:振幅', fontproperties='SimHei', fontsize=20)
      plt.plot(a, np.cos(2*np.pi*a), 'r--')
      plt.show()
      

    在这里插入图片描述

    pyplot的文本显示函数

    函数说明
    plt.xlabel()对X轴增加文本标签
    plt.ylabel()对Y轴增加文本标签
    plt.title()对图形整体增加文本标签
    plt.text()在任意位置增加文本
    plt.annotate()在图形中增加带箭头的注解
    import numpy as np
    import matplotlib.pyplot as plt
    a = np.arange(0.0, 5.0, 0.02)
    plt.plot(a, np.cos(2*np.pi*a))
    plt.xlabel('横轴:时间', fontproperties='SimHei', fontsize=15, color='green')
    plt.ylabel('纵轴:振幅', fontproperties='SimHei', fontsize=15)
    plt.title(r'正弦波实例 $y=cos(2\pi x)$', fontproperties='SimHei', fontsize=25)
    plt.text(2, 1, r'$\mu=100$', fontsize=15)
    plt.axis([-1,6,-2,2])
    plt.grid(True)
    plt.show()
    

    在这里插入图片描述

    plt.annotate(s,xy=arrow_crd,xytext=text_crd,arrowprops=dict)
    s:表示要注解的字符串
    xy:箭头所在的位置
    xytext:文本显示的位置
    arrowprops:字典类型,定义了整个箭头显示的属性

    import numpy as np
    import matplotlib.pyplot as plt
    a = np.arange(0.0, 5.0, 0.02)
    plt.plot(a, np.cos(2*np.pi*a))
    plt.xlabel('横轴:时间', fontproperties='SimHei', fontsize=15, color='green')
    plt.ylabel('纵轴:振幅', fontproperties='SimHei', fontsize=15)
    plt.title(r'正弦波实例 $y=cos(2\pi x)$', fontproperties='SimHei', fontsize=25)
    plt.annotate(r'$\mu=100$', xy=(2,1), xytext=(3,1.5),arrowprops=dict(facecolor='black', shrink=0.1, width=2))
    plt.axis([-1,6,-2,2])
    plt.grid(True)
    plt.show()
    

    在这里插入图片描述

    pyplot的子绘图区域

    1. plt.subplot2grid(GridSpec,CurSpec,colspan=1,rowspan=1)

      理念:设定网络,选中风格,确定选中牌坊下的女人区域数量,编号从0开始
      GridSpec:元组,表示将网格分成什么形状
      CurSpec:表示当前选定的位置
      colspan:表示列的延伸(合并)
      rowspan:表示行的延伸(合并)

    2. matplotlib.gridspec

    在这里插入图片描述

    展开全文
  • 使用 python Matplotlib 绘图-附件资源
  • Python Matplotlib 基基于于networkx画画关关系系网网络络图图 这篇文章主要介绍了Python Matplotlib 基于networkx画关系网络图文中通过示例代码介绍的非常详细对大家 的学习或者工作具有 定的参考学习价值需要的...
  • -Matplotlib库的介绍

    2020-05-15 17:14:38
    -Matplotlib库的介绍 Matplotlib库的使用 matplotlib.pyplot是绘制各类可视化图形的命令字子库,相当于快捷于快捷方式 import matplotlib,pyplot as plt(引入模块别名) import matplotlib.pyplot as plt plt.plot([3...

    -Matplotlib库的介绍

    Matplotlib库的使用

    matplotlib.pyplot是绘制各类可视化图形的命令字子库,相当于快捷于快捷方式
    import matplotlib,pyplot as plt(引入模块别名)

    import matplotlib.pyplot as plt
    plt.plot([3,1,4,5,2])
    plt.ylabel("Grade")
    plt.show()

    在这里插入图片描述

    import matplotlib.pyplot as plt
    plt.plot([3,1,4,5,2])
    plt.ylabel("Grade")
    plt.savefig('test',dpi=600)#PNG文件
    plt.show()

    plt.savefig()将图片储存为文件,默认为PNG格式,可以通过dpi修改输出质量

    在这里插入图片描述

    import matplotlib.pyplot as plt
    plt.plot([0,2,4,6,8],[3,1,4,5,2])
    plt.ylabel("Grade")
    plt.axis([-1,10,0,6])
    plt.show()

    plt.plot(x,y)按照x轴,y轴的顺序绘制的数据点
    在这里插入图片描述

    pyplot的绘图区域

    plt.subplot(nrows,ncols,plot_number)
    plt.subplot(3,2,4)
    在全局绘图区域中创建一个分区体系,并定位到一个子绘图区域

    import numpy as np
    import matplotlib.pyplot as plt
    def f(t):
        return np.exp(-t)*np.cos(2*np.pi*t)
    a=np.arange(0.0,0.5,0.02)
    plt.subplot(221)
    plt.plot(a,f(a))
    plt.show()

    在这里插入图片描述
    以上就是对Matplotlib库的介绍

    展开全文
  • matplotlib-3.2.0rc3-cp37-cp37m-win_amd64.whl 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。
  • python Matplotlib库的介绍和使用

    千次阅读 2020-12-18 13:23:17
    Matplotlib是一款可以数据可视化的。由各种可视化的类构成。 matplotlib.pyplot是绘制各类可视化图形的命令子。 通常别名为plt 命令如import matplotlib.pyplot as plt Matplotlib通常和Numpy结合使用。 ...
  • MATLAB可以做出各种函数以及数值分布图像非常的好用和方便。如果你没用过呢也没关系,知道这么回事就好了。MATLAB虽然好用,但毕竟是收费软件,而且相比于MATLAB,很多人更喜欢Python的语法。 所以呢MATLAB就被惦记...
  • python库之matplotlib库

    千次阅读 2019-09-06 19:18:33
    安装二、matplotlib.pyplot1.简介2.import as3.参考三、图的元素设置0.总汇1.显示2.保存的图像分辨率3.标题文字4.网格5.边界6.刻度7.刻度精度???代码 一、简介: 1.安装 pip install matplotlib 二、matplotlib...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 78,183
精华内容 31,273
关键字:

matplotlib库可以做什么