• matlplotlib绘图(二)


    matplotlib基础知识

    matpltlib中的基本图表包括的元素

    1.x轴和y轴:水平和垂直的轴线

    2.x轴和y轴的刻度:刻度标识坐标值的分隔,包括最小刻度和最大刻度

    3.x轴和y轴刻度:表示特定坐标轴的值

    4.绘图区域:实际绘图的区域

    绘制单一曲线的图

    代码如下

    import matplotlib.pyplot as plt
    %matplotlib inline
    import numpy as np

    x = np.linspace(0,2*np.pi,50) #,定义自变量的取值,并返回把范围分成50份

    y = np.sin(x)

    plt.plot(x,y)

    sin(x)cos(x)

    绘制多条曲线的图

    x = np.linspace(0,2*np.pi,50) #定义自变量的取值,并返回把范围分成50份
    y = np.sin(x)
    y2 = np.cos(x)
    plt.plot(x,y)                  #自变量相同
    plt.plot(x,y2)                

    绘制多条曲线也可以在plot()函数中添加多对x,y值

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

    [<matplotlib.lines.Line2D at 0x104ac898>,<matplotlib.lines.Line2D at 0x104ac9e8>]看返回结果可知道,返回值其实是一个列表

    添加网格线
    plt.grid()

    plt.plot(x,y,x,np.cos(x))
    plt.grid()
    plt.savefig("./image/grid.jpg")

    视图中添加子视图

    fig=plt.figure(figsize=(12,3))              #设置子视图的尺寸
    axes = fig.add_subplot(1,2,1)           #根据面向对象的思想创建子视图对象,指定子视图在视图中的位置,添加子视图为一行,两列,第一个
    axes.plot(x,y)                                    #画出子视图
    axes.grid()
    axes = fig.add_subplot(1,2,2)           #添加子视图为一行两列,第二个
    axes.plot(x,y)
    axes.grid(color ="red",alpha =1.0,linestyle = "-.",linewidth = 0.5)                  #视图中附带网格线,并设置网格线的颜色,线的明暗程度,线宽。
    plt.savefig("./image/fen.jpg")            #保存视图

    设置坐标轴界限坐标轴界限

    axis():获取或设置某些轴属性的方便方法。

    参数:

    pro =['on','off','equal','scaled','tight','auto','normal','image','square']

    添加方式:plt.axis(pro[2])            

     设置横纵坐标的范围,是一个列表很纵坐标相等

    如:

    x = np.linspace(0,2*np.pi,100)
    plt.plot(x,np.sin(x))
    plt.xlim([-1,7])
    plt.ylim([-1,1])

    坐标轴标签

    xlable方法和ylable方法

    如:plt.xlabel('X',fontsize=25,color='red')                                                 #fontsize设置标签字体大小,color设置字体颜色

            plt.ylabel("f(x)=sin(x)",fontsize = 25,color="green",rotation=90)       #rotation设置标签旋转的角度

    title()设置图形标题

    plt.title("正弦波sin",fontproperties="KaiTi",fontsize=25)                     #fontproperties设置字体样式

    设置全局字体

    from matplotlib.pyplot import rcParams
    rcParams["font.sans-serif"]="KaiTi"                   #对全局的字体进行设置

    rcParams["axes.unicode_minus"]=False            #对符号进行设值,不设置显示方框

    图例:两种方法

    1.【推荐使用】在plot函数中增加label参数,在legend方法中传入字符串列表

    如:plt.plot(x, x*3.0, label='Fast')

           plt.plot(x, x/3.0, label='Slow')

           plt.legend()

    2.legend方法中传入字符串列表

    如:plt.plot(x,np.sin(x),x,np.cos(x))                                              

           plt.legend(["sin","cos"])                      

     #属性  loc设置图例位置,若给定元祖,则设置图例在整个视图中的位置

                ncol设置图例样式(1代表纵向(默认),2代表横向)

    所有的字体样式对照:

    保存图片

    figure.savefig()

    参数:dpi:图形分辨率

              facecolor()图像的背景色,默认为w(白色)

             如:给子视图添加背景颜色:plt.subplot(1,1,1,facecolor = "#f7f7f7")

                    给主视图添加背景颜色:plt.savefig("./image/label2.jpg",dpi= 300,facecolor="green")

      

     设置plot的样式风格

    plot语句中支持除了X,Y以外的参数,以字符串形式存在,来控制颜色,线型,点型等要素

    语法格式:plt.plot(X,Y,"format",.....)

    ①.设置颜色:color或c           可以是颜色英文名,也可以是十六进制数

                      如:plt.plot(x,np.sin(x),color =np.random.rand(3)),让随机添加颜色

    ②.透明度设置:alpha          是一个小于1的浮点数,设置线型的颜色深浅

    ③.线型:linestyle或ls

    ④.线宽:linewidth           设置线型的宽度

    如:plt.plot(x,np.sin(x),color ="red",alpha =1,ls = "steps",linewidth = 2 )

    ⑤.不同宽度的破折线:dashes      用来设置破折线的各段的宽度

    如:plt.plot(x,np.cos(x),dashes = [5,3])                   #线段和空格的比例为5:3

    ⑥.点型:marker               给图像线型上添加点,

         点的样式

    marker的属性

    如:

    plt.plot(x,x**(1/2),marker= "*",markersize=10,markerfacecolor ="red",markeredgecolor = "y")                

    多个曲线不同属性设置方式(三种)

    1.多个都进行设置时,无需声名属性plt.plot(x1,y1,fmt,x2,y2,fmt2......)

    如: 

    x = np.linspace(0.1,10,10)
    plt.plot(x,x**(2),"r*-.",x,1/x,"go:")            #属性可以连用

     2.对实例使用一系列的setter方法

    x = np.linspace(-2,2,100000)
    line, = plt.plot(x,((np.cos(x)**(1/2))*np.cos(200*x)+(abs(x)**(1/2))-1)*(4-x**3)**0.01)
    line.set_linestyle(":")
    line.set_color("black")

     

    3.使用setp()方法进行属性设置

    x = np.linspace(-2,2,100000)
    line, = plt.plot(x,((np.cos(x)**(1/2))*np.cos(200*x)+(abs(x)**(1/2))-1)*(4-x**3)**0.01)
    plt.setp(line,color = "r",alpha = 0.6,ls = "-.")

     

    自定义x,y坐标刻度

    1.xticks()和yticks()方法

    x = np.linspace(0,2*np.pi,100)
    line, = plt.plot(x,np.sin(x))

    #对坐标刻度进行自定义设置,第一个列表为正常的显示值,第二个列表为想设置成的样式
    plt.yticks([-1,0,1],["min",0,"max"],fontsize = 18,color = "red",rotation =60)  
    plt.xticks(np.arange(0,2*np.pi+0.01,np.pi/2),[0,"$pi$/2","$pi$","3$pi$/2","2$pi$"],fontsize = 18,color = "r")

    #注意pi的输入样式:“$pi$”

  • 相关阅读:
    子集和的另外一个问题
    LCS
    表达式求值
    Singleton in java
    自绘ListBox的两种效果
    动态创建、压缩Access数据库(*.MDB)
    C# 中用stopwatch测试代码运行时间
    MVC学习笔记之数据传递
    ATM应用实现
    html的基本语法
  • 原文地址:https://www.cnblogs.com/kuangkuangduangduang/p/10300506.html
Copyright © 2020-2023  润新知