• python可视化------Matplotlib图形绘制


    开篇

    接上一篇python可视化------Matplotlib简单使用,这一篇我们来讲一讲如何使用Matplotlib库绘制一些常用的图形。

    常用图形绘制

    pyplot.bar条形图

    条形图很简单,每个矩形表示一个离散数据的数量,可以方便我们直观的观察离散数据的数量。使用bar函数进行绘制。

    #其中第一个列表表示每个矩形绘制时的起始位置,第二个参数表示矩形的高
    #除此之外还有许多可选参数:
    #width控制矩形宽度
    #align可以控制矩形位于起始位置的中央,设置为center
    #color设置颜色
    #alpha设置透明度
    plt.bar([1, 3, 5, 7, 9], [5, 4, 8, 12, 7] ,width=1,align='center',color='#342342')
    plt.show()
    


    通过pyplot.barh函数可以生成水平的条形图

    #水平图
    plt.barh([1, 3, 5, 7, 9], [5, 4, 8, 12, 7] ,align='center',color='#342342')
    plt.show()
    

    水平图

    pyplot.bar极坐标图

    是的,你没有看错,这个函数也可以画极坐标图,只不过要在图表上做点手脚,gca()函数可以获取我们当前使用的图表,我们将其polar属性设置为true就是极坐标系了。相对于直角坐标,极坐标有很多的特点,我们可以根据需求自己设置是否使用。

    #准备十个随机数据
    N = 10
    #将一个圆进行十等分
    x= np.linspace(0.0, 2 * np.pi, N,endpoint=False)
    #产生十个随机的高度
    y= np.random.rand(N)
    #设置随机的宽度
    width = np.pi / 5 * y
    #设置极坐标系
    plt.gca(polar=True)
    #使用bar函数绘制,参数是一样的
    #x是极坐标的极角,y是极径
    #其余参数与条形图相同
    plt.bar(x, y, width=width,alpha=0.5)
    plt.show()
    


    当然也可以改成线条的风格

    N = 1000
    theta = np.linspace(0.0, 2 * np.pi, N,endpoint=False)
    plt.gca(polar=True)
    plt.plot(theta,theta*3)
    plt.show()
    

    pyplot.hist直方图

    与条形图不同,直方图展示的是数据的分布情况,其横坐标会将取值分段,根据一定的间隔来计算间隔中有多少值来体现相关数值的频率分布。

    #生成随机数据
    x = 10 + 10 * np.random.randn(10000)
    #绘制直方图,hist的参数有:
    #x为传入的数据信息
    #bins用于对取值进行间隔划分
    #normed用于参数的归一化,true表示进行归一化,即将所有数据占的比例总和置为1,
    #由于版本问题笔者的参数为density,使用normed会报错
    #facecolor直方图的颜色
    #alpha直方图的透明度
    n, bins, patches = plt.hist(x, 100, density=1, facecolor='blue', alpha=0.7)
    #函数返回了三个参数,分别是:
    #n表示的是每个区间上数据的频数,即在这一区间上的数据有多少,以一个列表顺序表示
    #bins表示的是区间的划分情况,共划分了100块,所以以101个数来记录划分的区间
    #patches包含每个bin的所有数据,对应每个区间和每个区间的所有数据。
    plt.show()
    

    pyplot.scatter散点图

    散点图描述了数据点在坐标系中的分布情况,由两组数据构成多个坐标点,使用scatter函数可以实现

    #生成随机的数据点
    x = 10 + 10 * np.random.randn(10000)
    y = 10 + 10 * np.random.randn(10000)
    #动态的设置颜色
    color=x*y
    #绘制散点图,scatter参数有:
    #x,y分别是点集的横坐标与纵坐标集
    #s是用来标识绘制出的点的大小
    #c是用来设置点的颜色,可以根据点的位置来动态的设置
    #alpha透明度在0~1之间
    plt.scatter(x,y,s = 5, c = color, alpha = 0.5)
    plt.show()
    


    使用pyplot.plot()函数也可以实现

    x = 10 + 10 * np.random.randn(10000)
    y = 10 + 10 * np.random.randn(10000)
    plt.plot(x,y,'.',alpha=0.7)
    plt.show()
    

    pyplot.plot 折线图

    折线图的实现就简单的多,我们可以直接使用plot实现,只是在传参时要将横纵坐标写完整,还可以实现多个折线图的叠加。

    x=np.linspace(0,100,100)
    y1 = 10 + 10 * np.random.randn(100)
    y2 = 10 + 10 * np.random.randn(100)
    #对应的x与y要写完整
    plt.plot(x,y1,x,y2,alpha=0.7)
    plt.show()
    

    pyplot.pie饼图

    饼图可以表示一系列数据在数据整体中所占的比例,我们使用pie函数对其进行绘制。

    #对应数据的标签
    labels = ['A', 'B', 'C', 'D', 'E', 'F']
    #相应的数据
    X = [123, 242, 43, 345, 546, 3434]
    #用于表示扇形相对于中心的位移
    expl = [0,0,0,0,0,0.1]
    #每个扇形的颜色
    color=['b','g','r','y','k','#756532']
    #绘制函数pie,其参数有:
    #x为需要进行处理的数据
    #labels每一块所需要展示的文字
    #explode每一块相对于中心的位置
    #shadow是与否显示阴影
    #pctdistance显示的比例在圆中的位置
    #autopct比例的数值位数,%.1f%%取一位小数
    plt.pie(X, labels=labels,explode=expl,colors=color, autopct='%.1f%%',pctdistance=0.8,shadow=True) 
    plt.show()
    

    图像标注

    pyplot.text文字

    使用这一函数我们可以在图像上进行相关数据的标注。

    x=[1, 3, 5, 7, 9]
    y1=[1, 7,3, 9,  5]
    plt.bar(x, y1 ,align='center', color='#345345')
    plt.xticks(x, x)
    for i in range(len(y1)):
    	#text函数很简单,参数有:
    	#x,y所展示的文字的位置
    	#'%s' %string string就是文字变量
    	#ha条形图中的文字居中,在其它的图中应该也有相关属性,还可以通过计算x,y的值手动设置。
        plt.text(x[i],y1[i]+0.1,'%s' %y1[i],ha='center')
    plt.show()
    

    pyplot.annotate标注

    annotate标注可以在文字旁加上箭头,并且有许多的参数变化。

    x=[1, 3, 5, 7, 9]
    y1=[1, 7, 3, 9, 5]
    plt.bar(x, y1 ,align='center', color='#345345')
    plt.xticks(x, x)
    #s第一个函数,即要显示的文字
    #xy箭头处的坐标
    #xytext文字的坐标
    #arrowprops箭头函数以字典dict来设置属性
    #facecolor箭头颜色
    #shrink箭头的缩放在0~1之间
    #width点箭头的宽度
    plt.annotate('point', xy=(5,4), xytext=(5,7), arrowprops=dict(facecolor='b', shrink=1))
    for i in range(len(y1)):
        plt.text(x[i],y1[i]+0.1,'%s' %y1[i],ha='center')
    plt.show()
    

    小结

    这些只是对库中函数的基本使用,我们可以通过它们之间的组合来实现我们对于数据可视化的需求,许多的参数和解释详见matplotlib文档

  • 相关阅读:
    (转)linux书籍推荐
    (转)X Windows与GNOME,KDE的关系
    (转)学习Linux编程开发必读书籍
    (转)详解C中volatile关键字
    博客开张了
    VMware虚拟产品简介
    c++ eof()
    旋转矩阵
    VMware文件辨别
    Microsoft HTTPAPI/2.0 use Port 80 – 无法启动WAMP Apache
  • 原文地址:https://www.cnblogs.com/yanzs/p/13788290.html
Copyright © 2020-2023  润新知