zoukankan      html  css  js  c++  java
  • [转]matplotlib

    转自:https://blog.csdn.net/qq_30815237/article/details/87903024


    1、plt.rcParams

    plt(matplotlib.pyplot)使用rc配置文件来自定义图形的各种默认属性,称之为“rc配置”或“rc参数”。
    通过rc参数可以修改默认的属性,包括窗体大小、每英寸的点数、线条宽度、颜色、样式、坐标轴、坐标和网络属性、文本、字体等。rc参数存储在字典变量中,通过字典的方式进行访问。

    代码:

    import numpy as np
    import matplotlib.pyplot as plt
    ###%matplotlib inline    #jupyter可以用,这样就不用plt.show()
     
    #生成数据
    x = np.linspace(0, 4*np.pi)
    y = np.sin(x)
    #设置rc参数显示中文标题
    #设置字体为SimHei显示中文
    plt.rcParams['font.sans-serif'] = 'SimHei'
    #设置正常显示字符
    plt.rcParams['axes.unicode_minus'] = False
    plt.title('sin曲线')
    #设置线条样式
    plt.rcParams['lines.linestyle'] = '-.'
    #设置线条宽度
    plt.rcParams['lines.linewidth'] = 3
    #绘制sin曲线
    plt.plot(x, y, label='$sin(x)$')
     
    plt.savefig('sin.png')
    plt.show()
    

      

    参数:

    plt.rcParams['savefig.dpi'] = 300 #图片像素
    plt.rcParams['figure.dpi'] = 300 #分辨率
    plt.savefig(‘plot123_2.png’, dpi=200)#指定分辨率
    # 默认的像素:[6.0,4.0],分辨率为100,图片尺寸为 600&400
    # 指定dpi=200,图片尺寸为 1200*800
    # 指定dpi=300,图片尺寸为 1800*1200
     
     
    plt.rcParams['figure.figsize'] = (8.0, 4.0)        # 图像显示大小
    plt.rcParams['image.interpolation'] = 'nearest'  # 最近邻差值: 像素为正方形
    #Interpolation/resampling即插值,是一种图像处理方法,它可以为数码图像增加或减少象素的数目。
     
    plt.rcParams['image.cmap'] = 'gray'  # 使用灰度输出而不是彩色输出
     
    plt.axis('off')    #打印图片的时候不显示坐标轴
    

     

    from:https://blog.csdn.net/liangzuojiayi/article/details/78184687

    更详细的配置参见:https://my.oschina.net/swuly302/blog/94805

    2、matshow函数

    这是一个绘制矩阵的函数:matplotlib.pyplot.matshow(A, fignum=None, **kwargs)

    A是绘制的矩阵,一个矩阵元素对应一个图像像素。

    例如:plt.matshow(Mat,  cmap=plt.cm.gray),cmap代表一种颜色映射方式。

    实例:

    plt.plot(A, "r-+", linewidth=2, label="train")
        plt.plot(B, "b-", linewidth=3, label="val")
        plt.legend(loc="upper right", fontsize=14)   # 设置位置
        plt.xlabel("Training set size", fontsize=14) # 标签
        plt.ylabel("RMSE", fontsize=14)  
    plt.axis([0, 80, 0, 3])#表示要显示图形的范围
    plt.xticks(np.arange(0, 81, step=20))#设置刻度
    plt.yticks(np.arange(0, 4, step=1))
    

    Axes - Subplot - Axis 之间到底是个什么关系

    用matplotlib.pyplot绘图需要知道以下几个概念:

    画图板/画布:这是一个基础载体,类似实际的画图板,用pyplot.figure()函数创建,程序中允许创建多个画图板,具体操作的画板遵循就近原则(操作是在最近一次调用的画图板上实现),缺省条件下内部默认调用pyplot.figure(1)。

    图形区/绘图区:用来绘图的实际区域,一般不直接获取,直接设定方式为pyplot.axes([x, y, w, h]),即axes函数直接确定了该区域在画图板/画布中的位置为x,y 尺寸为w,h

    标签区:用来展示图形相关标签的地方,一般不直接设定(未仔细研究过),该区域根据图形区进行扩展,与该区域有关联的函数是pyplot.xlabel()、pyplot.ylabel()、pyplot.title()等

    fig = plt.figure() 
    plt.show()
     
    ax1 = fig.add_subplot(211)
    ax2 = fig.add_subplot(212)
    

     

    用画板和画纸来做比喻的话,figure就好像是画板,是画纸的载体, 但是具体画画等操作是在画纸上完成的。 在pyplot中,画纸的概念对应的就是Axes/Subplot。

     

    对比:

    figure (1) VS figure()
          figure()操作就是创建或者调用画图板,缺省情况下系统会创建figure(1)作为画图板。使用时遵循就近原则,所有画图操作是在最近一次调用的画图板上实现。

    axes() VS subplot()
          pyplot.axes([x, y, w, h])是用来在画图板上确认图形区的位置和大小的函数,x,y表示图形区左下角相对于画图板的坐标,w,h表示图形区的宽高。(缺省时该操作在figure(1)上操作)

          pyplot.subplot(abc)本质也是用来确认图形区在画图板上位置大小的函数,区别是该函数将画图板按a行b列等分,然后逐行编号,并选择编号为c的区域作为图形区用来绘图。这是一个axes()操作的高级封装,方便用户使用。subplot(233)表示2行3列的第3个位置(即,第1行第三个区域)

    同时,pyplot.show()实际展示的区域是画图板上所有图形区的最小包围区,不是整个画图板,即如果仅仅调用了subplot(224)结果只展示右下角的4号区域,而不是1、2、3、4都展示,因此会存在一定的错觉。

    axes() VS axis()
           axes([x, y, w, h])用来设定图形区;

           axis([x_left, x_right, y_bottom, y_top])是用来设置所绘制图形的视窗大小的,表示直接展示的图形是需要满足参数中范围的值,直观表现是绘图区实际展示的坐标范围。

    注:axis作用的图形区依旧遵守就近原则。

    subplot() VS plot()
           subplot用来生成图形区;

           plot是实际使用的绘图函数,类似的函数还有hist等,plot操作遵守就近原则,即作用在最近一次使用的图形区上。

    from:https://blog.csdn.net/JasonZhu_csdn/article/details/85860963
    官网:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.html



    转自:https://wangyeming.github.io/2018/11/07/matplot-cmap/

    画图离不开色彩--说说matplot的cmap

    一张好看的图,离不开各种各样的颜色。在matplot中,有一个cmap的概念,通过cmap,我们可以很方便的给多组数据自动分配色彩,画出很好看的图。这篇文章就简单介绍下cmap的概念和用法。

    cmap是什么

    cmap也就是colormap,可以理解为接受一个数值,输出一个指定的颜色的字典。下面这张图就展示了常见的一些cmap。

    可以点击matplot cmap这里,里面有一个demo示例,会画一个包含matplot中所有cmap的图。

    这里常见的cmap有:

    纯色渐变系列:

    比如说画灰度图的话,可以选择Greys这个cmap。

    画出来的图的颜色就是下面这样的:

     

  • 相关阅读:
    Golang里边的map变量是什么?
    Golang map的底层实现
    方法和函数的区别
    Golang 对 对象和指针 的理解
    React 部分
    前端开发概述、html、css基础
    服务器核心知识
    常用模块8.7
    2017.8.2迭代器和生成器
    2017.7.18可变/不可变类型,符号运算及其流程控制
  • 原文地址:https://www.cnblogs.com/xianhan/p/10773980.html
Copyright © 2011-2022 走看看