精华内容
下载资源
问答
  • matlab最简单的代码 在使用机器学习方法解决问题的过程中,一定会遇到需要针对数据进行绘图的场景。 Matplotlib 是支持 Python 语言的开源绘图库,因为其支持丰富的绘图类型、简单的绘图方式以及完善的接口文档, ...
  • matplotlib是python著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地 进行制图。Matplotlib的安装可以参见:官网链接 http://matplotlib.org/users/installing.html 安装总结步骤如下: ...
  • 欢迎使用matplotlib-cpp,它可能是最简单的C ++绘图库。 它的构建类似于Matlab和matplotlib使用的绘图API。 用法 完整的最小示例: # include " matplotlibcpp.h " namespace plt = matplotlibcpp; int main () { ...
  • 最近看到一个讲Matplotlib英文教程写很高明,兼收并蓄,简单易懂,特意翻译过来,与君共享。原网址在:http://cs231n.github.io/python-numpy-tutorial/#matplotlib 。 Matplotlib(https://matplotlib.org/)...
  • GGPlotD是D编程语言的绘图库。 该设计在很大程度上受到ggplot2 for R的启发,后者基于Leland Wilkinson描述的通用图形语法。 该库取决于实际图纸的cairo(D)。 该库的设计使从简单的构建块轻松构建复杂的图块成为...
  • 本文介绍了plotly.js 绘图库入门使用教程,分享给大家,具体如下: ...Plotly 可以称之为迄今优秀的绘图库,没有之一。 简单案例 代码 <!DOCTYPE html> <html> <head> <meta
  • Matplotlib 是使用 Python 开发的一个绘图库,是 Python 界进行数据可视化的首选库。它提供了绘制图形的各种工具,支持的图形包括简单的散点图、曲线图和直方图,也包括复杂的三维图形等,基本上做到了只有你想不到...
        

    matplotlib

    概述

    Matplotlib 是使用 Python 开发的一个绘图库,是 Python 界进行数据可视化的首选库。
    它提供了绘制图形的各种工具,支持的图形包括简单的散点图、曲线图和直方图,也包括复杂的三维图形等,基本上做到了只有你想不到,没有它做不到的地步。可以通过图形示例来快速浏览所有支持的图形。

    Hello Matplotlib

    从最简单开始,绘制一条正玄曲线:

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.linspace(0, 2 * np.pi, 50)
    y = np.sin(x)
    plt.plot(x, y)
    plt.show()

    运行后看到的结果类似为:

    Sin

    最开始时,引入相关模块并重命名为 npplt ,其中 np 用来生成图形数据,plt 就是我们的绘图模块。

    接着使用 np.linspace 生成了包含 50 个元素的数组作为 x 轴数据,这些元素均匀的分布在 [0, 2π] 区间上。然后使用 np.sin 生成 x 对应的 y 轴数据。

    再接着 plt.plot(x, y) 会自动创建一个图形,并把 xy 绘制到图形上。

    最后,调用 plt.show() 把绘制好的图形显示出来。

    注意,使用 plot() 方法时我们传入了两组数据: xy,分别对应 x 轴和 y 轴。如果仅仅传入一组数据的话,那么该数据就是 y 轴数据, x 轴将会使用数组索引作为数据。例如 plt.plot(y) 的结果为:

    Sin 1

    图表组成

    从上面绘制的图表中,可以看到它包含有 x 、y 轴刻度和曲线本身,但一个完整的图表还可以展示更多的信息。

    下图展示了图表的所有元素:

    anatomy

    图表是用户所见的整张图片,它管理着所有的坐标系,辅助元素(标题、图例等)和画布。只要知道画布是真正绘制图形的地方就可以了,对它不用了解太多。一张图表可以有多个坐标系,因为它可以有多个图形,一个坐标系只能属于一张图表。比如下图,

    multi figure

    它在一张图表内画了四个图形,每个图形都有自己独立的坐标系。二维坐标系包含两条坐标轴,三维的话则是三条。

    注意区分图表和图形,图表是整张图片,图形是图表的一部分。

    另一种编程风格

    在前面绘制正玄曲线的代码中,可能并不太好理解图表是何时、如何创建的。
    下面换用另一种编程风格实现相同的正玄曲线图形,这可以帮助我们理解更详细的过程。

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.linspace(0, 2 * np.pi, 50)
    y = np.sin(x)
    
    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1)
    ax.plot(x, y)
    
    plt.show()

    可以看出,与之前的编码相比,这里多了两行代码,而且使用 ax 代替 plot 来绘制图形。
    其中,fig = plt.figure() 显式创建了一个图表对象 fig,刚创建的图表此时还是空的,什么内容都没有。
    接着,ax = fig.add_subplot(1, 1, 1) 往图表中新增了一个图形对象,返回值 ax 为该图形的坐标系。

    add_subplot() 的参数指明了图形数量和图形位置。(1, 1, 1) 对应于 (R, C, P) 三个参数,R 表示行,C 表示列,P 表示位置。因此,(1, 1, 1) 表示在图表中总共有 1 x 1 个图形,当前新增的图形添加到位置 1
    如果改为 fig.add_subplot(1, 2, 1) 则表示图表拥有 1 行 2 列总共有 2 个图形,最终展示结果为:

    Sin 2

    右边的空白处为位置 2 的图形位置,因为没有往该位置添加图形,所以显示为空白。

    (1, 1, 1) 也可以简写为三个数字组成的三位整数,即 plt.add_subplot(111)

    这种编程风格更符合程序员的编程习惯,所以推荐使用这种编程风格。

    使用这种编程风格时,Matplotlib 的基本使用过程可总结如下:

    Flow

    应用实践

    利用上面学到的概念,下面绘制了一个更复杂些的图表,里面使用了一些常用接口,最终效果如下:

    Figure example

    代码实现:

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.linspace(0, 2 * np.pi, 50)
    
    # 创建图表
    fig = plt.figure(figsize=(13, 9), dpi=90)
    fig.suptitle('Figure Example')
    
    # 绘制图形 1
    ax1 = fig.add_subplot(2, 2, 1)
    ax1.set_title('Subplot 1')
    ax1.plot(x, np.sin(x))
    ax1.plot(x, np.sin(2 * x))
    
    # 绘制图形 2
    ax2 = fig.add_subplot(2, 2, 2)
    ax2.set_title('Subplot 2')
    ax2.plot(x, np.sin(x), 'r-o', label='Sin(x)')
    ax2.plot(x, np.cos(x), color='green', linestyle='dashed', label='Cos(x)')
    ax2.legend()
    ax2.set_xlabel('Rads')
    ax2.set_ylabel('Amplitude')
    
    # 绘制图形 3
    ax3 = fig.add_subplot(2, 2, 3)
    ax3.set_title('Subplot 3')
    ax3.scatter(x, np.sin(x), marker='^')
    ax3.scatter(x, np.cos(x + np.pi / 2), marker='x')
    ax3.axhline(0, color='red', linestyle='dashed', linewidth=0.5)
    ax3.axvline(np.pi, color='red', linestyle='dashed', linewidth=0.5)
    
    # 绘制图形 4
    fig.add_subplot(2, 2, 4)
    ax4 = fig.axes[3]
    ax4.set_title('Subplot 4')
    ax4.hist(np.random.randn(100), 10)
    
    plt.show()

    如果想对图形做更多自定义的部分,可以在 Axes API 查询相关接口。

    展开全文
  • matplotlib是python比较底层可视化库,可定制性强、图表资源丰富、简单易用、达到出版质量级别。 Matplotlib 可能是 Python 2D-绘图领域使用广泛套件。它能让使用者很轻松地将数据图形化,并且提供多样化...

    简介

    matplotlib是python比较底层的可视化库,可定制性强、图表资源丰富、简单易用、达到出版质量级别。
    Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。这里将会探索 matplotlib 的常见用法。

    绘图的基础知识

    • 图例Legend 代表图形里的内容
    • 网格Grid,图形中的虚线,True显示网格
    • 点 Markers:表示点的形状。

    在这里插入图片描述

    常用图形

    基本的视觉元素有三种:点、线、柱状。
    在这里插入图片描述

    绘图步骤

    在这里插入图片描述

    # 导入图库
    import matplotlib.pyplot as plt
    import numpy as np
    # 创建画板figure
    figure = plt.figure(figsize=(10, 10))
    # 创建子图subplot/Axes
    ax = plt.subplot(1, 1, 1)
    # 准备数据
    x = np.linspace(0, 10, 100)
    y = np.sin(x)
    # 绘制
    ax.plot(x, y, color='orange', linestyle='-')
    ax.set_title('y=sinx')
    ax.set_xlabel('x')
    ax.set_ylabel('y')
    # 显示图形
    plt.show()
    

    在这里插入图片描述
    注意:如果只绘制一个图的话,不需要创建画板和子图,直接绘制即可。

    属性详解

    在这里插入图片描述

    在这里插入图片描述

    多图绘制

    在这里插入图片描述
    在这里插入图片描述
    子图的绘制

    # 1). 导入绘图库
    import  matplotlib.pyplot as plt
    import  numpy as np
    # 2). 创建画板figure
    figure = plt.figure(figsize=(10, 10))
    # 3). 创建子图subplot/Axes, 生成2行一列的子图,
    # 第一行第一列绘制sinx的图形, 第二行第一列绘制cosx的图形
    ax1 = plt.subplot(2, 1, 1)
    ax2 = plt.subplot(2, 1, 2)
    # 4). 准备数据
    # 从0-50分割成100份
    x = np.linspace(0, 10, 100)
    y1 = np.sin(x)
    y2 = np.cos(x)
    # 6). 绘制
    ax1.plot(x, y1, color='orange', linestyle='-.')
    ax1.set_title('y = sinx')
    ax1.set_xlabel('x')
    ax1.set_ylabel('y')
    
    ax2.plot(x, y2, color='m', linestyle='-.')
    ax2.set_title('y = cosx')
    ax2.set_xlabel('x')
    ax2.set_ylabel('y')
    # 7). 显示图形
    plt.show()
    

    条形图的绘制
    条形图(bar chart),也称为柱状图,是一种以长方形的长度为变量的统计图表,长方形的长度与它所对应的变量数值呈一定比例。

    import matplotlib.pyplot as plt
    
    # 1. 创建figure
    fig = plt.figure()
    
    # 2. 创建子图(1行2列)
    ax1 = plt.subplot(1, 2, 1)
    ax1.set_title('男生购买饮用水情况的调查结果')
    ax2 = plt.subplot(1, 2, 2)
    ax2.set_title('女生购买饮用水情况的调查结果')
    
    # ***********中文乱码如何解决
    plt.rcParams['font.sans-serif'] = ['SimHei']
    
    # 3. 加载数据信息
    waters = ['碳酸饮料', '绿茶', '矿泉水', '其它', '果汁']
    boy_buy_num = [6, 7, 6, 2, 1]
    girl_buy_num = [9, 4, 4, 6, 5]
    
    # 4. 绘制条形图
    bar_width = 0.4
    ax1.bar(waters, boy_buy_num, bar_width, color='orange')
    ax2.bar(waters, girl_buy_num, bar_width, color='g')
    
    # 5. 保存图片到本地
    # plt.show()
    plt.savefig('bar.png')
    

    在这里插入图片描述
    横向条形图绘制

    import matplotlib.pyplot as plt
    
    # 1. 创建figure
    fig = plt.figure()
    
    # 2. 创建子图(1行2列)
    ax1 = plt.subplot(2, 1, 1)
    ax1.set_title('男生购买饮用水情况的调查结果')
    ax2 = plt.subplot(2, 1, 2)
    ax2.set_title('女生购买饮用水情况的调查结果')
    
    # ***********中文乱码如何解决
    plt.rcParams['font.sans-serif'] = ['SimHei']
    
    # 3. 加载数据信息
    waters = ['碳酸饮料', '绿茶', '矿泉水', '其它', '果汁']
    boy_buy_num = [6, 7, 6, 2, 1]
    girl_buy_num = [9, 4, 4, 6, 5]
    
    # 4. 绘制条形图
    bar_width = 0.4
    ax1.barh(waters, boy_buy_num, height=bar_width, color='orange')
    ax2.barh(waters, girl_buy_num, height=bar_width, color='g')
    
    # 5. 保存图片到本地
    # plt.show()
    plt.savefig('bar.png')
    

    在这里插入图片描述
    并列条形柱状图

    import matplotlib.pyplot as plt
    import numpy as np
    
    # ***********中文乱码如何解决
    plt.rcParams['font.sans-serif'] = ['SimHei']
    # 加载数据信息
    waters = ['碳酸饮料', '绿茶', '矿泉水', '其它', '果汁']
    boy_buy_num = [6, 7, 6, 2, 1]
    girl_buy_num = [9, 4, 4, 6, 5]
    
    # 调整条形图的横坐标
    bar_width = 0.4
    boy_index = np.arange(len(waters))  # [0, 1, 2, 3, 4]
    girl_index = boy_index + bar_width  # numpy传播机制, [0.4, 1.4, 2.4, 3.4, 4.4]
    
    # 绘制条形图
    plt.bar(boy_index, boy_buy_num, bar_width, color='orange', label='男生')
    plt.bar(girl_index, girl_buy_num, bar_width, color='g', label='女生')
    # 修改无意义的横坐标为有意义的横坐标
    plt.xticks(boy_index + bar_width / 2, waters)
    plt.ylabel("购买量")
    plt.title("购买饮水情况的调查表")
    
    plt.legend()
    # 保存图片到本地
    # plt.show()
    plt.savefig('bar.png')
    

    在这里插入图片描述

    展开全文
  • python中的绘图是非常方便和实用的,在平时的学习中我们可以掌握一些简单的绘图还是非常必要的,其中matplotlib是python著名的绘图库,里面提供了非常多的api提供我们绘制各种各样丰富的图标,下面是一些简单的...

    python中的绘图是非常方便和实用的,在平时的学习中我们可以掌握一些简单的绘图还是非常必要的,其中matplotlib是python最著名的绘图库,里面提供了非常多的api提供我们绘制各种各样丰富的图表,下面是一些简单的例子:

    绘制折线图:

    若想要保存图片,需要调用plt.savefig方法对当前的Figure对象保存为图像文件

    注意:plt.savefig()函数应该出现在plt.show()函数之前,否则,关闭图像窗口后,图像对象也就被释放了,什么都保存不到

    import matplotlib.pyplot as plt
    
    if __name__ == '__main__':
        x = [0, 2, 4, 6]
        y = [1.4, 2.5, 4.6, 7.9]
    
        # plot函数作图
        plt.plot(x, y)
    
        # show函数展示出这个图,如果没有这行代码,则程序完成绘图,但看不到, dpi为分辨率
        plt.savefig("img.jpg", dpi=72)
        plt.show()

    对绘制的线条设置属性

    可以使用plot函数对绘制的线条设置线条风格、颜色、线条标记等

    import matplotlib.pyplot as plt
    if __name__ == '__main__':
        x = [0, 2, 4, 6]
        y = [1.4, 2.5, 4.6, 7.9]
        # plot函数用来设置线条的属性: color设置线条颜色, linestyle设置线条样式, marker设置标记
        # linewidth设置线条宽度
        plt.plot(x, y, color="g", linestyle="-", marker="*", linewidth=1.0)
        plt.show()

    下面是官网提供的样式:

    linesstyle:

    markers:

    colors:

    坐标轴的控制:

    主要涉及以下几个参数:① 坐标轴的范围 ② 坐标间隔 ③ 标题

    坐标范围:plt.axis([x_min, x_max, y_min, y_max])

    坐标间隔设定:plt.xticks()和plt.yticks()用来实现对x轴和y轴坐标间隔(也就是轴记号)的设定。用法上,函数的输入是两个列表,第一个表示取值,第二个表示标记,如果你的标记就是取值本身,则第二个列表可以忽略

    坐标标题:plt.xlabel()和plt.ylabel()对x轴和y轴添加标题

    下面是y = tanx函数的生成的例子:

    if __name__ == '__main__':
        import matplotlib.pyplot as plt
        import numpy as np
        # 使用arange生成一个范围内的数字序列
        x = np.arange(-1.5 * np.math.pi, 1.5 * np.math.pi, 0.02)
        print(x)
        y = np.tan(x)
        # axis函数设置坐标轴x与y的范围
        plt.axis([-10, 10, -5, 5])
        # 因为range函数两个参数表示步长为1, 所以假如要表示x轴或者y轴之间的间隔那么应该可以乘以0.5
        # 这样就可以表示0.5的间隔了
        # x轴的间隔为0.5
        plt.xticks([i * np.pi * 0.5 for i in range(-3, 4)], [str(i * 0.5) + "$\pi$" for i in range(-3, 4)])
        # y轴的间隔为1
        plt.yticks([i for i in range(-5, 6)])
        plt.xlabel("x")
        plt.ylabel("y")
        plt.plot(x, y, color="r", linestyle="-", linewidth=1)
        plt.show()

    生成的图像:

    展开全文
  • 本文目录前言折线图 前言 现在火的语言莫过于...Matplotlib 是 Python 的一个绘图库。它包含了大量的工具,你可以使用这些工具创建各种图形,包括简单的散点图,正弦曲线,甚至是三维图形。好了,下面我们直接进...

    前言

    前面博主介绍过的pandas库,而今天介绍的matplotlib库能和pandas库结合起来,让数据更加的直观,易懂。

    Matplotlib 是 Python 的一个绘图库。它包含了大量的工具,你可以使用这些工具创建各种图形,包括简单的散点图,正弦曲线,甚至是三维图形。好了,下面我们直接进入实战代码学习。

    折线图

    首先,就是我们图标之中常用的折线图,对于折线图来说,能直观的看到数据的涨跌变化,比如股市常用的图形就是折线图,下面我们来看看代码如何实现:

    import matplotlib.pyplot as plt
    
    x = ['2020-01', '2020-02', '2020-03', '2020-04', '2020-05', '2020-06', '2020-07', '2020-08']
    y = [0, 15, 23, 68, 45, 86, 54, 24]
    plt.plot(x, y)
    plt.show()
    

    代码非常简单,就是确定X,Y轴的数据,然后显示出来,这段代码显示的效果如下:

    折线图当然这是折线图的基本,也是最简单的玩法, 其实对于matplotlib库来说,折线图还有很多的玩法,比如可以修改折线的颜色,折现的样式等,直接上代码:

    plt.plot(x, y,'r--')
    

    仅仅只修改这一句就行,r代表虚线的颜色为红色, ‘–’代表折线的样式为–,显示效果如下图所示:
    红色折线图这是最简单的用法,为了便于理解后面的知识点,这里开始深入展开,比如先明确Figure的概念,我们先来看一张图:
    在这里插入图片描述图片上,Figure代表画板,Axes/Subplot代表画纸,其他两个英文就是X轴与Y轴,所以假如我们需要在一张画纸上画4个折线图就需要用到这些知识点,代码如下:

    x = ['2020-01', '2020-02', '2020-03', '2020-04', '2020-05', '2020-06', '2020-07', '2020-08']
    y = [0, 15, 23, 68, 45, 86, 54, 24]
    fig = plt.figure()  # 获取画板
    ax1 = fig.add_subplot(221)  # 获取画纸
    ax1.plot(x, y)
    ax2 = fig.add_subplot(222)  # 获取画纸
    ax2.plot(x, y)
    ax3 = fig.add_subplot(223)  # 获取画纸
    ax3.plot(x, y)
    ax4 = fig.add_subplot(224)  # 获取画纸
    ax4.plot(x, y)
    plt.show()
    

    这里我们创建了画板,同时创建了画纸,这里设置为两行行列的画板,同时分别获取某个位置的画纸,这样我们就能画出4个折线图,显示效果如下:
    在这里插入图片描述

    折线图的详细用法

    如果使用如上方式先创建画板在获取画纸进行画图的话,我们如何设置其他的参数呢?下面我们直接来看一段代码:

    matplotlib.rcParams['font.sans-serif'] = ['SimHei']
    matplotlib.rcParams['font.family'] = 'sans-serif'
    matplotlib.rcParams['axes.unicode_minus'] = False
    x = ['2020-01', '2020-02', '2020-03', '2020-04', '2020-05', '2020-06', '2020-07', '2020-08']
    y = [0, 15, 23, 68, 45, 86, 54, 24]
    fig = plt.figure()  # 获取画板
    ax = fig.add_subplot(111)  # 获取画纸
    ax.plot(x, y, linestyle='--', marker='o')#设置X,Y数据,显示折现的样式(--),以及数据点的样式(圈)
    ax.set_title("我的标题")  # 设置你的标题
    ax.set_xlabel('X轴')  # 设置X轴的文字
    ax.set_ylabel('Y轴')  # 设置Y轴的文字
    ax.set_xticks(['2020-01', '2020-02', '2020-03', '2020-04', '2020-05', '2020-06', '2020-07', '2020-08'])  # 更改X轴刻度
    ax.set_xticklabels(['2020-01', '2020-02', '2020-03', '2020-04', '2020-05', '2020-06', '2020-07', '2020-08'],
                       rotation=30, fontsize='small')  # 增加X轴刻度文字旋转角度以及字体大小
    ax.grid()#增加网格
    ax.tick_params(axis='x', labelsize=7, rotation=45, colors='red')#同样可以设置X轴字体样式旋转角度,文字颜色,第一个参数为哪个轴
    for i, j in zip(x, y):
        ax.annotate('%s' % (j), xy=(i, j), xytext=(0, 15), textcoords='offset points', ha='center')
    #将详细数据显示在折线图上,
    #第一个参数为注释点显示的数据,第二参数为数据显示图中的哪个坐标
    # textcoords注释文本的坐标系属性,默认与xycoords属性值相同,也可设为不同的值。除了允许输入xycoords的属性值,还允许输入以下两种:
    # offset points相对于被注释点xy的偏移量(单位点)
    # offset pixels相对于被注释点xy的偏移量(单位像素)
    #第四个参数显示的文字在中间
    plt.show()
    

    上面基本把常用的方法全部都写在了代码中,而且注释已经写的非常的详细,这里博主不在过多的赘述,上面代码显示的效果图如下:
    折线图

    柱状图

    除了生活中常见的折线图之外,我们还常常见到各种报表中,也有柱状图,同样柱状图也可以通过matplotlib包实现,下面我们先来看一个简单的用法:

    x = ['2020-01', '2020-02', '2020-03', '2020-04', '2020-05', '2020-06', '2020-07', '2020-08']
    y = [0, 15, 23, 68, 45, 86, 54, 24]
    fig = plt.figure()  # 获取画板
    ax = fig.add_subplot(111)  # 获取画纸
    ax.bar(x, y)
    plt.show()
    

    在matplotlib中,我们通过bar实现柱状图,而之前的折现图我们通过plot方法实现,上面是最简单的实现方式,实现效果图如下:
    柱状图

    柱状图的详细用法

    接着,我们同样深入了解柱状图,看看如何实现,让其效果更佳,同样,我们先来看一段代码:

    import matplotlib.pyplot as plt
    import matplotlib.colors as col
    import matplotlib.cm as cm
    import matplotlib
    import numpy as np
    #下面三行用处为避免中文乱码
    matplotlib.rcParams['font.sans-serif'] = ['SimHei']
    matplotlib.rcParams['font.family'] = 'sans-serif'
    matplotlib.rcParams['axes.unicode_minus'] = False
    x = [2000, 2005, 2010, 2015, 2020, 2025, 2030, 2035]
    y = [0, 15, 23, 68, 45, 86, 54, 24]
    y2 = [0, 10, 20, 60, 40, 80, 50, 20]
    fig = plt.figure()  # 获取画板
    ax = fig.add_subplot(111)  # 获取画纸
    ax.bar([i + 1 for i in x], y2)
    ax.set_title("柱状图")
    ax.set_xlabel("X数据")
    ax.set_ylabel("Y数据")
    ax.grid()#增加网格
    ax.tick_params(axis='x', labelsize=7, rotation=45, colors='red')
    #annotate对齐方式
    #arrowprops绘画箭头
    for i, j in zip(x, y):
        ax.annotate('%s' % (j), xy=(i, j), xytext=(0, 25), textcoords='offset points', ha='center',
            arrowprops=dict(facecolor='black', shrink=0.15), fontsize=7)
    patterns = {'-', '+', 'x', '\\', '*', 'o', '0', '.', 'v', '^', '1', '2', '3', '4', '8', 's', 'p', 'h'}#柱形图的样式
    #cm.ScalarMappable给定的颜色映射返回RGBA颜色之前使用数据标准化
    #colors.Normalize使用方法如下:
    # class matplotlib.colors.Normalize(vmin=None, vmax=None)
    # 参数vmin、vmax分别为要设置的数据范围最小值和最大值;
    # 范围外的值分别显示最大值或最小值的颜色。
    #cm.hot表示风格
    camp1 = cm.ScalarMappable(col.Normalize(min(y), max(y) + 20), cm.hot)
    #edgecolor:柱子轮廓色
    #color:柱子填充色
    #camp1.to_rgba(y)返回颜色值
    bars = ax.bar(x, y, alpha=0.5, color=camp1.to_rgba(y), edgecolor='red', label=u'柱形图')
    for bar, pattern in zip(bars, patterns):
        bar.set_hatch(pattern)#设置每个柱形的填充样式
    ax.legend(loc='upper left')#左上角的提示
    plt.show()
    
    

    折现图的某些方法,在柱状图中依然可以使用,而且上面代码也有柱状图独有的方法函数,其中一些都写了注释,方便大家阅读,上面这段代码显示的效果如下:
    柱状图当然柱状图并不仅仅只有竖着的才是柱状图,有时候我们也可以看到许多横着的柱状图,那么横着的柱状图在matplotlib中是如何实现的呢?还是一样直接看一段代码:

    x = [2000, 2005, 2010, 2015, 2020, 2025, 2030, 2035]
    y = [0, 15, 23, 68, 45, 86, 54, 24]
    fig = plt.figure()  # 获取画板
    ax = fig.add_subplot(111)  # 获取画纸
    ax.barh(x, y)
    plt.show()
    

    代码很简单,就是把bar方法换成barh方法,而且上面bar能用的其他设置barh一样都可以使用,这段代码就实现了横行柱状图,实现效果如下:
    横柱状图

    饼图

    折线图可以看清楚数据的走势涨跌以及升迁,柱状图可以看清楚高低长短以及大小,但是它们都无法确认数据的百分比分布情况,所以这个时候就需要饼图,我们先来看一看饼图的简单用法:

    fig = plt.figure()  # 获取画板
    ax = fig.add_subplot(111)  # 获取画纸
    labels = ['娱乐', '育儿', '饮食', '房贷', '交通', '其它']
    sizes = [2, 5, 12, 70, 2, 9]
    plt.pie(sizes, labels=labels, autopct='%1.1f%%', shadow=False, startangle=150)
    plt.title("饼图示例-8月份家庭支出")
    plt.show()
    

    在matplotlib包中,我们使用饼图的方法是pie,而且百分比也不用我们自己来计算,pie方法会自动帮我们计算数组的综合,然后在分别每个数占据的比例,上面的代码显示效果如下:
    饼图

    饼图的详细用法

    同样上面都是一些最基本的用法,我们实际的项目中可能还需要饼图的其他各种详细的设置,所以,我们先来看看饼图详细用法的一些代码:

    fig = plt.figure()  # 获取画板
    ax = fig.add_subplot(111)  # 获取画纸
    labels = ['娱乐', '育儿', '饮食', '房贷', '交通', '其它']
    sizes = [2, 5, 12, 70, 2, 9]
    explode = (0,0,0,0.1,0,0)
    '''
    x:指定绘图的数据;
    explode:指定饼图某些部分的突出显示,即呈现爆炸式;
    labels:为饼图添加标签说明,类似于图例说明;
    colors:指定饼图的填充色;
    autopct:自动添加百分比显示,可以采用格式化的方法显示;
    pctdistance:设置百分比标签与圆心的距离;
    shadow:是否添加饼图的阴影效果;
    labeldistance:设置各扇形标签(图例)与圆心的距离;
    startangle:设置饼图的初始摆放角度;
    radius:设置饼图的半径大小;
    counterclock:是否让饼图按逆时针顺序呈现;
    wedgeprops:设置饼图内外边界的属性,如边界线的粗细、颜色等;
    textprops:设置饼图中文本的属性,如字体大小、颜色等;
    center:指定饼图的中心点位置,默认为原点
    frame:是否要显示饼图背后的图框,如果设置为True的话,需要同时控制图框x轴、y轴的范围和饼图的中心位置;
    '''
    plt.pie(sizes,explode=explode, labels=labels, autopct='%1.1f%%', shadow=False, startangle=90)
    '''
    legend画出右上角显示的颜色文字配对详情
    loc:图例所有figure位置
    bbox_to_anchor:指定图例在轴的位置
    fontsize:文字大小
    borderaxespad:轴与图例边框之间的距离
    frameon:是否去掉图例边框,false代表是
    edgecolor:设置图例边框颜色
    facecolor:设置图例背景颜色,若无边框,参数无效
    handletextpad:图例句柄和文本之间的间距
    handlelength:图例句柄的长度
    handleheight:图例句柄的高度
    labelspacing:图例条目之间的垂直间距
    borderpad:图例边框的内边距
    framealpha:控制图例框架的 Alpha 透明度
    shadow:控制是否在图例后面画一个阴影
    '''
    ax.legend(loc='best', bbox_to_anchor=(1.1, 1.05), fontsize=8, borderaxespad=0.3,labelspacing=2.0)
    plt.title("饼图示例-8月份家庭支出")
    plt.show()
    

    上面都是饼图常用的参数,其中有些参数并不是饼图用的所以这里没有讲解,因为legend有很多参数,而且大部分还是散点图用的参数,我们将马上讲解散点图,我们看看上面代码实现的效果图:
    详细用法

    散点图

    以上三种图都是我们生活中常见的图,比如财务报表,理财开支,生活贷款以及科学计算都会用到上面三种图形,但是有一种图是科学计算中独用的,那就是散点图,生活中基本见不到这种图,但从事科学研究的大佬肯定经常用到,下面我们来看看它的简单用法:

    fig = plt.figure()  # 获取画板
    ax = fig.add_subplot(111)  # 获取画纸
    N = 1000
    x = np.random.randn(N)
    y = np.random.randn(N)
    plt.scatter(x, y)
    plt.show()
    

    在matplotlib包中,散点图的方法是scatter,上面的代码我们使用numpy库随机生成了1000具有标准正态分布的数据,定位X,Y的坐标,然后显示出来,显示的效果如下图所示:
    散点图

    散点图的详细用法

    当然这是散点图最基本的用法,下面我们来看看散点图的详细用法,这里我们不和上面一样笼统的代码注释讲解,我们将分别讲解散点图的方法参数,首先也就是我们创建散点图的方法scatter它的参数:

    scatter(x, y, s=None, c=None, marker=None, 
    cmap=None, norm=None, vmin=None, 
    vmax=None, alpha=None, linewidths=None, 
    verts=None, edgecolors=None, 
    hold=None, data=None, **kwargs)
    

    参数的意思分别如下:

        x,y:数据坐标
        
        s:原点的大小,也需要是一个list数组的类型,设置每个点的大小
        
        c:颜色,可以单独设置(单独设置传入list数组),可以整体设置
        
        marker:`〜matplotlib.markers.MarkerStyle`,可选,默认值:'o'
            请参阅`〜matplotlib.markers`以获取有关不同的更多信息
            标记分散支持的样式。 `marker`可以是
            该类的实例或特定文本的简写
            标记。
        
        cmap:`〜matplotlib.colors.Colormap`,可选,默认:无
            一个`〜matplotlib.colors.Colormap`实例或注册名称。
            `cmap`仅在`c`是浮点数组时使用。如果没有,
            默认为rc`image.cmap`。
        
        norm:`〜matplotlib.colors.Normalize`,可选,默认:无
            `〜matplotlib.colors.Normalize`实例用于缩放
            亮度数据为0,1。`norm`只有在`c`是一个数组时才被使用
            彩车。如果`None',则使用默认值:func:`normalize`。
        
        vmin,vmax:标量,可选,默认值:无
            `vmin``vmax``norm`结合使用来标准化
            亮度数据。如果其中任何一个都是`无',那么最小和最大的
            使用颜色数组。请注意,如果你通过一个“规范”实例,你的
            `vmin``vmax`的设置将被忽略。
        
        alpha:透明度
        
        linewidths:标量或array_like,可选,默认值:无
            如果无,则默认为(lines.linewidth,)。
        
        verts:(x,y)的序列,可选
            如果`marker`为None,这些顶点将用于
            构建标记。标记的中心位于
            在(0,0)为标准化单位。整体标记重新调整
            由``s``完成。
        
         edgecolors :边框颜色
    
    

    比如我下面这段代码设置了每个点的大小,颜色,边框,透明度,样式为右尖三角形。代码如下:

    fig = plt.figure()  # 获取画板
    ax = fig.add_subplot(111)  # 获取画纸
    x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    y = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    s = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
    color = ['r', 'y', 'k', 'g', 'm', 'r', 'y', 'k', 'g', 'm']
    plt.scatter(x, y, color=color, marker='>',
                s=s, edgecolor='black', alpha=0.5)
    for x, y in zip(x, y):
        plt.annotate('(%s,%s)' % (x, y), xy=(x, y), xytext=(0, -10), textcoords='offset points', ha='center', va='top')
    plt.show()
    

    可以看到我们设置的点其实都在一条直线上,而且我们也同样使用了annotate方法,标记点的坐标显示在图像上,前面的有些方法,在散点图中依旧可以用,包括legend方法,这段代码显示的效果如下:
    散点图对角线对于matplotlib包常用的绘图操作来说,上面基本都讲解到了,其他的都是一些比较偏门的知识,感兴趣的可以查询文档更深入的了解,但学会了上面的绘图代码,基本上大多数情况下都能轻松应付自如,好了matplotlib库就讲解到这里,觉得有用的可以点个赞支持一下,谢谢。

    展开全文
  • 首先是最简单的折线图,每条线的color都是黑色,用linestyle加以区分,linestyle可以选择"-"、"–"、"-."、":“或”"。另外,坐标轴刻度、坐标轴名称、标签名称等等字体要调大一些,在figsize = (9, 6)的画布大小下...
  • plotly.js 绘图库入门使用教程

    万次阅读 2018-02-22 12:28:32
    于是,简单的进行了尝试。 最后决定使用 plotly.js,其他的比如 function-plot 看起来也不错,以后有时间再看。 Plotly plotly.js is the open source JavaScript graphing library that powers Plotly....
  • window基础编程 --绘图

    2016-02-19 22:07:43
    绘图设备 DC(Device Context)>后续的资源需要使用绘图设备,所以穿插说下绘图设备的使用。 - windows里的绘图设备是DC,对应的句柄是HDC,绘图封装的函数都放在GDI里...- 题外:GDI是最简单的绘图库,想要绘制3D图形,有
  • 所以了解它们后,使用库里的API函数将会更加得心应手,并且熟练其中一个库后,便能迅速上手其他的绘图库。 1 绘图组成要素 一般绘图要素的基本组成部分包括:画布(Canvas),坐标系(Axes),轴(Axis),标题(Title),...
  • matlab最简单的代码matplotlib-cpp 欢迎使用matplotlib-cpp,它可能是最简单的C ++绘图库。 它的构建类似于Matlab和matplotlib使用的绘图API。 用法 完整的最小示例: # include " matplotlibcpp.h " namespace plt ...
  • flot 是一个基于jquery开源javascript库,是一个纯粹 jQuery JavaScript 绘图库,可以在客户端即时生成图形,使用非常简单,支持放大缩小以及鼠标追踪等交互功能。该插件支持 IE6/7/8/9, Firefox 2.x+, Safari ...
  • MatplotLib库是Python中常用第三方绘图库,他API设计大部分模仿自matlab。因此matplotlib与matlab使用十分相像。 以下程序段在各种环境下均可运行,但推荐在spyder下运行。 一维、二维数据绘图与保存 ...
  • matplotlib 绘图基础

    2019-07-10 11:43:30
    最简单的入门是从类 MATLAB API 开始,它被设计成兼容 MATLAB 绘图函数。 pylab 是 matplotlib 面向对象绘图库的一个接口。它的语法和 Matlab 十分相近。也就是说,它主要的绘图命令和 Matlab 对应的命令有相似的...
  • Matplotlab是python著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地制图,其中,matplotlib地pyplot模块一般是常用地。 画图 1. 折线图 绘制一个简单的折线图,折线图的横坐标和纵坐标是...
  • Matplotlib绘图(未完)

    2019-09-12 08:29:59
    matplotlib是Python著名的绘图库之一,提供了一整套和MATLAB相似的命令API,既适合交互式地进行制图。 使用简单绘图语句,实现复杂绘图效果 以交互式操作实现渐趋精细的图形效果 使用嵌入式的LaTeX输出具有印刷...
  • python绘图之matlibplot

    千次阅读 2019-08-07 21:55:26
    Matplotlib 是一个在 python 下实现的类 matlab 的纯 python 的三方库,旨在用 python实现 matlab 的功能,是python 下出色的绘图库,功能很完善,其风格跟 matlab 很相似,同时也继承了 python 的简单明了的风格,其...
  • 高级笔刷 —— 先进平板电脑绘画引擎 80多种自然笔刷预设; 创建新笔刷; 轻松更改笔刷设置; 笔刷与纸张材质真实互动。 高级工具 —— 集各种功能于一体 试用四种类型对称; 图层和Photoshop混合...
  • 最简单的绘图例子 1、认识matplotlib Matplotlib是一个Python 2D绘图库,能够以多种硬拷贝格式和跨平台的交互式环境生成出版物质量的图形,用来绘制各种静态,动态,交互式的图表。 Matplotlib可用于Python脚本,...
  • matplotlib 是流行的Python底层绘图库,主要做数据可视化图表 可以将数据可视化,能够更直观的呈现数据 matplotlib绘图基本要点 首先实现一个简单的绘图 # 导入pyplot from matplotlib import pyplot as plt x = ...
  • matplotlib绘图基础笔记

    2020-05-26 20:05:32
    matplotlib: 流行Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建 三、matplotlib基本使用 #导入包 from matplotlib import pyplot as plt #设置输出绘图图片大小 fig = plt....
  • matplotlib 绘图-barChart

    千次阅读 2016-08-23 21:53:08
    matplotlib 是python著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。它的文档相当完备,并且 Gallery页面 中有上百幅缩略...
  • matplotlib 是python著名的2D绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。通过简单的绘图语句,就可以绘制出高质量的图了。 ...
  • 利用matplotlib中imshow()函数绘图

    万次阅读 多人点赞 2016-01-05 14:53:13
    是python著名的2D绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。通过简单的绘图语句,就可以绘制出高质量的图了。 这里我们就...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 146
精华内容 58
关键字:

最简单的绘图库