• matplotlib的基本使用、绘制雷达图及绘制数学函数


    一、matplotlib的介绍

    1、matplotlib是提供数据绘图功能的第三方库,其pyplot子库主要用于实现各种数据展示图形的绘制。

    2、pyplot子库的引用方式如下:

    import matplotlib.pyplot as plt

    3、为了正确显示中文字体,请用一下代码更改默认设置,其中“SimHei”表示黑体字

    >>>import matplotlib

    >>>matplotlib.rcParams['font.family']='SimHei'

    >>>matplotlib.rcParams['font.sans-serif']=['SimHei']

    二、matplotlib.pyplot库解析

    1、plt子库提供了一批操作和绘图函数,每个函数代表对图像进行的一个操作,比如创建绘图区域、添加标注或者修改坐标轴等。

    2、这些函数采用plt.<b>()形式调用,其中<b>是具体函数名称

    3、plt库的绘图区域函数

    函数 说明
    plt.figure(figsize=None,facecolor=None) 创建一个全局绘图区域,figsize参数可以指定绘图区域的宽度和高度
    plt.axes(rect,axisbg='w') 创建一个坐标系风格的子绘图区域,参数表示将全局绘图区域分成nrows行和ncols列,并根据先行后列的计数方式在plot_number位置上生成一个坐标系
    plt.subplot(nrows,ncols,plot_number) 在全局绘图区域中创建一个子绘图区域
    plt.subplots_adjust() 调整子图区域的布局

    注意:axes()默认创建一个subplot(111)坐标系,参数rec=[left,bottom,width,height]中四个变量的范围都为[0,1],表示坐标系与全局绘图区域的关系;axisbg指背景色,默认为white

    4、plt库的读取和显示函数

    函数 说明
    plt.legend() 在绘图区域中方式绘图标签(也称图注)
    plt.show() 显示创建的绘图对象
    plt.matshow() 在窗口显示数组矩阵
    plt.imshow() 在axes上显示图像
    plt.imsave() 保存数组为图像文件
    plt.imread() 从图像文件中读取数组

    5、plt库的基础表函数

    操作 说明
    plt.plot(x,y,lable,color,width) 根据x,y数组绘制直/曲线,x和y可以是numpy计算出的数组,label表示设置标签并在图例中显示,color表示曲线的颜色,width表示曲线的宽度
    plt.boxplot(data,notch,position) 绘制一个箱型图(Box-plot)
    plt.bar(left,height,width,bottom) 绘制一个条形图
    plt.barh(bottom,width,height,left) 绘制一个横向条形图
    plt.polar(theta,r) 绘制极坐标图
    plt.pie(data,explode) 绘制饼图
    plt.psd(x,NFFT=256,pad_to,Fs) 绘制功率谱密度图
    plt.specgram(x,NFFT=256,pad_to,F) 绘制谱图
    plt.cohere(x,y,NEET=256,Fs) 绘制X-Y的相关性函数
    plt.scatter() 绘制散点图(x,y是长度相同的序列)
    plt.step(x,y,where) 绘制步阶图
    plt.hist(x,bins,normed) 绘制直方图
    plt.contour(X,Y,Z,N)

    绘制等值线

    plt.vlines() 绘制垂直线
    plt.stem(x,y,linefmt,markerfmt,basefmt) 绘制曲线每个点到水平轴线的垂线
    plt.plot_data() 绘制数据日期
    plt.plotfile() 绘制数据后写入文件

    例如:绘制一个简单图形

    a、当plt.plot()中输入参数只有一个列表或数组时,此参数会被当做y轴处理,x轴是此列表的索引(自动生成)

     

    b、当plt.plot()有两个以上参数时,分别对应x轴和y轴绘制图像,可使用axis()函数设置横纵坐标尺度的函数(设置X,Y坐标的起点和终点)

    三、绘制雷达图

    代码

     1 import numpy as np
     2 import matplotlib 
     3 import matplotlib.pyplot as plt
     4 matplotlib.rcParams['font.family']='SimHei'
     5 matplotlib.rcParams['font.sans-serif']=['SimHei']
     6 labels=np.array(['第一周','第二周','第三周','第四周','第五周','第六周'])
     7 nAttr=6
     8 Python=np.array([60.4,57.9,100,100,92.4,87.5])
     9 angles=np.linspace(0,2*np.pi,nAttr,endpoint=False)
    10 Python=np.concatenate((Python,[Python[0]]))
    11 angles=np.concatenate((angles,[angles[0]]))
    12 fig=plt.figure(facecolor="white")
    13 plt.subplot(111,polar=True)
    14 plt.plot(angles,Python,'bo-',color='g',linewidth=2)
    15 plt.fill(angles,Python,facecolor='g',alpha=0.2)
    16 plt.thetagrids(angles*180/np.pi,labels)
    17 plt.figtext(0.52,0.95,'Rachel的python成绩分析图',ha='left')
    18 plt.figtext(0.52,0.95,'2019310143011',ha='right')
    19 plt.grid(True)
    20 plt.savefig('acculate.JPG')
    21 plt.show()

    结果

    四、绘制数学函数

    r=3*(1+cos(a))

    代码如下

    1 import numpy as np 
    2 import matplotlib.pyplot as plt
    3 plt.axis([-1,9,-4,4])
    4 a=np.linspace(0,2*np.pi,1000)
    5 r=3*(1+np.cos(a))
    6 x=r*np.cos(a)
    7 y=r*np.sin(a)
    8 plt.plot(x,y,'x',linewidth=2)

    结果如下

  • 相关阅读:
    Spring3:AOP
    Spring2:bean的使用
    Spring1:Spring简介、环境搭建、源码下载及导入MyEclipse
    Vue.js——60分钟组件快速入门(上篇)
    vue父子组件嵌套的时候遇到
    Vue.js——60分钟快速入门
    [Vue warn]: Cannot find element: #app
    关于RabbitMQ以及RabbitMQ和Spring的整合
    spring集成多个rabbitMQ
    RabbitMQ-从基础到实战(5)— 消息的交换(下)
  • 原文地址:https://www.cnblogs.com/qinlai/p/12813848.html
Copyright © 2020-2023  润新知