美文网首页Matplotlib
机器学习第6天:数据可视化神器--Matplotlib

机器学习第6天:数据可视化神器--Matplotlib

作者: K同学啊 | 来源:发表于2019-02-01 11:56 被阅读2次

    联系我:ke.zb@qq.com
    我的技术博客:明天依旧可好-CSDN

    -----代码传送门-----
    -----数据传送门-----

    一、Matplotlib简介

    Matplotlib是一个数据可视化神器,画图用的。涉及散点图、线图、等高线图、条形图、柱状图、3D图形、饼图、Image图像、灰度图。

    这里主要介绍如何绘画机器学习中常用到的一些图像。

    二、散点图

    第1步:导入数据

    import pandas as pd
    dataSet = pd.read_csv('studentscores.csv')
    
    X = dataSet.iloc[ : , : -1]
    Y = dataSet.iloc[ : , 1]
    

    第2步:拆分成训练集和测试集

    from sklearn.model_selection import train_test_split
    X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.25, random_state=0)
    

    第3步:使用简单线性回归模型来训练训练集

    from sklearn.linear_model import LinearRegression
    regressor = LinearRegression()
    regressor = regressor.fit(X_train, Y_train)
    

    第4步:绘制散点图

    import matplotlib.pyplot as plt
    plt.scatter(X_train, Y_train, color='red')
    plt.show()
    

    二、线图

    数据沿用散点图数据

    plt.plot(X_train, regressor.predict(X_train), color='blue')
    plt.show()
    

    三、等高线图

    第1步:定义一个计算高度用的函数

    def f(x,y):
        return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)
    

    第2步:创建一个等差数列

    import numpy as np
    n=256
    x=np.linspace(-3,3,n)  #[-3,3],共256个点
    y=np.linspace(-3,3,n)
    

    第3步:将等差数列绑定为网格的形式

    X,Y=np.meshgrid(x,y)
    

    第4步:等高划分并填色

    #等高划分并着色
    plt.contourf(X,Y,f(X,Y),8,alpha=0.75,cmap=plt.cm.hot)
    
    #设置等高线
    C=plt.contour(X,Y,f(X,Y),8,colors='black',linewidth=0.5)
    
    #设置等高线的数值
    plt.clabel(C,inline=True,fontsize=10)
    
    #设置坐标轴
    plt.xlim(-3,3)
    plt.ylim(-3,3)
    
    plt.show()
    

    四、运行结果展示

    1. 散点图

    2. 线图

    3. 等高线图

    五、函数讲解

    1. scatter()

    plt.scatter(X_train, Y_train, color='red')中的X_train,Y_train就是X和Y轴的坐标,形状为shape(n, )。更多用法见:sactter函数详解

    2. plot()

    plt.plot(X_train, regressor.predict(X_train), color='blue'),用法和scatter()差不多,不同的是scatter()画的是点,plot() 画的是线。

    3. linspace()

    np.linspace(-3,3,n)
    

    它是创建等差数列的函数,返回ndarray类型数据。起点为3,终点为3,n为步长,如果n=1,则返回array([ -3., -2., -1., 0., 1., 2., 3.])

    4. contourf()

    plt.contourf(X,Y,f(X,Y),8,alpha=0.75,cmap=plt.cm.hot)
    

    contourf(contour等高线+filling);8 表示等高线分为多少部分,0->2部分,1->3部分,8->10部分;alpha=0.75表示图形的透明度,如果alpha=0那么图形的颜色为白,f(X,Y)第三个参数表示高度,不同高度域颜色就会不同。


    我的CSDN技术专栏:【机器学习100天】【K童鞋的爬虫笔记】

    相关文章

      网友评论

        本文标题:机器学习第6天:数据可视化神器--Matplotlib

        本文链接:https://www.haomeiwen.com/subject/getdsqtx.html