• 第五节 matplotlib库


     

     一、Matplotlib基础知识

    1.1Matplotlib中的基本图表包括的元素

    • x轴和y轴 axis
      水平和垂直的轴线
    • x轴和y轴刻度 tick
      刻度标示坐标轴的分隔,包括最小刻度和最大刻度
    • x轴和y轴刻度标签 tick label
      表示特定坐标轴的值
    • 绘图区域(坐标系) axes
      实际绘图的区域
    • 坐标系标题 title
      实际绘图的区域
    • 轴标签 xlabel ylabel
      实际绘图的区域

    1.2 导包

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    from pandas import Series,DataFrame

    1.3 绘制简单图形

    • 单条曲线
    x=[1,2,3,4,5]
    y=[2,4,6,8,10]
    plt.plot(x,y)

    • 抛物线
    x = np.arange(-np.pi,np.pi,0.2)
    y = x**2
    plt.plot(x,y)

    • 绘制正弦曲线图
    x = np.arange(-np.pi,np.pi,0.2)

    y = np.cos(x)
    plt.plot(x,y)

    1.4 绘制多个曲线的图

    x = np.arange(-np.pi,np.pi,0.2)
    y = np.cos(x)
    
    #方式一
    plt.plot(x,y)
    plt.plot(x+3,y+3)
    #方式二
    plt.plot(x,y,x+3,y+3)

    1.5 将多个曲线图绘制在一个table区域中:对象形式创建表图

    • a=plt.subplot(row,col,loc) 创建曲线图
    • a.plot(x,y) 绘制曲线图
    ax1=plt.subplot(2,2,1)
    ax1.plot(x,y,'r')
    ax2=plt.subplot(2,2,2)
    ax2.plot(x,y,'b')
    ax3=plt.subplot(2,1,2)
    ax3.plot(x,y,'black')

    ax1=plt.subplot(2,2,1)
    ax1.plot(x,y,'r')
    ax2=plt.subplot(2,2,3)
    ax2.plot(x,y,'b')
    ax3=plt.subplot(1,2,2)
    ax3.plot(x,y,'black')

    1.6 网格线 plt.gride(XXX)

    参数:

    - axis
    - color:支持十六进制颜色
    - linestyle: --  -.  :
    - alpha:透明度0-1
    • 一般网格的添加
    plt.grid(axis='both') #x-y都加网格
    plt.plot(x,y)

    • 使用对象形式设置网格
    #ax1,ax2,ax3都是对象
    plt.grid(axis='both')
    ax1=plt.subplot(2,2,1)
    ax1.grid()
    ax1.plot(x,y,'r')
    ax2=plt.subplot(2,2,2)
    ax2.plot(x,y,'b')
    ax2.grid()
    ax3=plt.subplot(2,1,2)
    ax3.grid()
    ax3.plot(x,y,'black')

    1.7 坐标轴界限

    axis方法:设置x,y轴刻度值的范围

    plt.axis([xmin,xmax,ymin,ymax])

    plt.axis([-6,6,-2,2])
    plt.plot(x,y)
    #plt.axis('off') 关闭坐标系显示

    1.8 关闭坐标轴显示 

    plt.axis('off')

    1.9 设置画布比例

    设置画布比例:plt.figure(figsize=(a,b)) a:x刻度比例 b:y刻度比例 (2:1)表示x刻度显示为y刻度显示的2倍

    plt.figure(figsize=(2,3))
    plt.plot(x,y)

    1.10 坐标轴标签

    • s 标签内容
    • color 标签颜色
    • fontsize 字体大小
    • rotation 旋转角度

    (1) plt的xlabel方法和ylabel方法 title方法

    plt.xlabel('x')
    plt.ylabel('sin(x)')
    plt.title('y= sin(x)')
    plt.plot(x,y)

    1.11 图例---legend方法

    (1)两种传参方法:

    • 分别在plot函数中增加label参数,再调用plt.legend()方法显示
    • 直接在legend方法中传入字符串列表
    #方式一
    plt.plot(x,y,label='aaa')
    plt.plot(x+3,y+3,label='bbb')
    plt.legend()
    
    #方式二
    plt.plot(x,y,x+3,y+3)
    plt.legend(['aaa','bbb'])

    (2)legend参数

    - loc参数
    • loc参数用于设置图例标签的位置,一般在legend函数内
    • matplotlib已经预定义好几种数字表示的位置
    - ncol参数
    • ncol控制图例中有几列,在legend中设置ncol

    plt.plot(x,y,x+3,y+3)
    plt.legend(['aaa','bbb'],loc=3,ncol=2)

     

    1.12 保存图片

    使用figure对象的savefig函数来保存图片

    fig = plt.figure()---必须放置在绘图操作之前(******)

    figure.savefig的参数选项

    • filename
      含有文件路径的字符串或Python的文件型对象。图像格式由文件扩展名推断得出,例如,.pdf推断出PDF,.png推断出PNG (“png”、“pdf”、“svg”、“ps”、“eps”……)
    • dpi
      图像分辨率(每英寸点数),默认为100
    • facecolor ,打开保存图片查看 图像的背景色,默认为“w”(白色)
    fig = plt.figure()
    
    plt.plot(x,y,x+3,y+3)
    plt.legend(['aaa','bbb'],loc=3,ncol=2)
    
    fig.savefig('./img.png',dpi=500) #dip表示像素分辨率

    1.13 设置plot的风格样式

    plot语句中支持除X,Y以外的参数,以字符串形式存在,来控制颜色、线型、点型等要素,语法形式为:
    plt.plot(X, Y, 'format', ...)

    • 颜色 --参数color或c

    • 透明度  -- alpha参数(0-1)
    • 线型 -- 参数linestyle或ls

    • 线宽 -- linewidth或lw参数
    • 点型 
      • marker 设置点形
      • markersize 设置点形大小

    plt.plot(x,y,c='y',alpha=0.8,lw=3,marker='8',markersize=10,markerfacecolor='b')
    plt.grid(color='r')

    总结:
    
    绘制线      plt.plot(x1,y1,x2,y2)
    网格线      plt.grid(True)  axes.grid(color,ls,lw,alpha)
    获取坐标系  plt.subplot(n1,n2,n3)
    坐标轴标签  plt.xlabel() plt.ylabel()
    坐标系标题  plt.title()
    图例        plt.legend([names],ncol=2,loc=1)  plt.plot(label='name')
    线风格      --  -. : None  step
    图片保存    figure.savefig()
    点的设置    marker markersize markerfacecolor markeredgecolorwidth
    坐标轴刻度  plt.xticks(刻度列表,刻度标签列表) plt.yticks()
                axes.set_xticks(刻度列表) axes.set_xticklabels(刻度标签列表)

     二 2D图形

    2.1 直方图

    • 是一个特殊的柱状图,又叫做密度图。

      【直方图的参数只有一个x!!!不像条形图需要传入x,y】

    • plt.hist()的参数
      • bins
        直方图的柱数,可选项,默认为10
      • color
        指定直方图的颜色。可以是单一颜色值或颜色的序列。如果指定了多个数据集合,例如DataFrame对象,颜色序列将会设置为相同的顺序。如果未指定,将会使用一个默认的线条颜色
      • orientation
        通过设置orientation为horizontal创建水平直方图。默认值为vertical
    data = [1,2,3,3,4,2,5]
    plt.hist(data,bins=10)

    图像中返回值 :

    1: 直方图向量,是否归一化由参数normed设定

    2: 返回各个bin的区间范围

    3: 返回每个bin里面包含的数据,是一个list

    2.2条形图:plt.bar()

    • 参数:第一个参数是索引。第二个参数是数据值。第三个参数是条形的宽度

    -【条形图有两个参数x,y】

    • width 纵向设置条形宽度
    • height 横向设置条形高度

    bar() : 垂直的条形图

    barh():水平条形图

    x=[1,2,3,4,5]
    y=[3,5,4,2,1]
    plt.bar(x,y,width=0.6,color='r')

    plt.barh(x,y) #水平条形图

    2.3 饼图

    【饼图也只有一个参数x】

    pie()
    饼图适合展示各部分占总体的比例,条形图适合比较各部分的大小.

    • 普通各部分占满饼图
    plt.pie([11,22,33])

    • 普通未占满饼图:小数/比例
    plt.pie([0.2,0.3,0.1])

    • 饼图参数属性设置
    labels参数设置每一块的标签;
    labeldistance参数设置标签距离圆心的距离(比例值)
    autopct参数设置比例值小数保留位(%.3f%%);
    pctdistance参数设置比例值文字距离圆心的距离
    explode参数设置每一块顶点距圆心的长度(比例值,列表);
    colors参数设置每一块的颜色(列表);
    shadow参数为布尔值,设置是否绘制阴影
    startangle参数设置饼图起始角度
    ##explode参数设置每一块顶点距圆心的长度(比例值,列表);
    arr=[11,22,31,15]
    plt.pie(arr,labels=['a','b','c','d'],labeldistance=0.3,shadow=True,explode=[0.2,0.3,0.2,0.4])

    2.4 散点图 : 因变量随自变量而变化的大致趋势

    【散点图需要两个参数x,y,但此时x不是表示x轴的刻度,而是每个点的横坐标!】

    scatter()

    #plt.scatter(x,y,marker='d',c="rbgy") 设置不同的散点颜色
    x = np.random.random(size=(100,))
    y = np.random.random(size=(100,))
    plt.scatter(x,y,c='rgby')

  • 相关阅读:
    ElasticSearch(十二):Spring Data ElasticSearch 的使用(二)
    ElasticSearch(十):Elasticsearch集群配置
    Linux下设置postgresql数据库开机启动
    PostgreSQL分区表实现——pg_pathman安装、配置
    Postgresql日志配置
    Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    Docker(5):Docker镜像基本操作(上)
    数学建模之路----遗传算法
    MATBLAB学习笔记----基础绘图
    ffmpeg音频视频转格式工具使用
  • 原文地址:https://www.cnblogs.com/angle6-liu/p/10410489.html
Copyright © 2020-2023  润新知