zoukankan      html  css  js  c++  java
  • 【matplotlib】绘制散点图

    matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, *, data=None, **kwargs)

    x,y:表示的是大小为(n,)的数组,也就是我们即将绘制散点图的数据点

    s:是一个实数或者是一个数组大小为(n,),这个是一个可选的参数。

    c:表示的是颜色,也是一个可选项。默认是蓝色'b',表示的是标记的颜色,或者可以是一个表示颜色的字符,或者是一个长度为n的表示颜色的序列等等。但是c不可以是一个单独的RGB数字,也不可以是一个RGBA的序列。可以是他们的2维数组(只有一行)。

    marker:表示的是标记的样式,默认的是'o'。

    cmap:Colormap实体或者是一个colormap的名字,cmap仅仅当c是一个浮点数数组的时候才使用。如果没有申明就是image.cmap

    norm:Normalize实体来将数据亮度转化到0-1之间,也是只有c是一个浮点数的数组的时候才使用。如果没有申明,就是默认为colors.Normalize。

    vmin:vmax:实数,当norm存在的时候忽略。用来进行亮度数据的归一化。

    alpha:实数,0-1之间。

    linewidths:也就是标记点的长度。

    现在我们有一个ex0.txt文件,部分数据如下:

    1.000000    0.067732    3.176513
    1.000000    0.427810    3.816464
    1.000000    0.995731    4.550095
    1.000000    0.738336    4.256571
    1.000000    0.981083    4.560815
    1.000000    0.526171    3.929515
    1.000000    0.378887    3.526170
    1.000000    0.033859    3.156393
    1.000000    0.132791    3.110301
    1.000000    0.138306    3.149813

    我们先编写一个函数用于读取数据:

    from numpy import *
    import numpy as np
    
    def loadDataSet(fileName):      #general function to parse tab -delimited floats
        numFeat = len(open(fileName).readline().split('	')) - 1 #get number of fields 
        dataMat = []
        labelMat = []
        fr = open(fileName)
        for line in fr.readlines():
            curLine = line.strip().split('	')
            for i in range(1,numFeat):
                dataMat.append(float(curLine[i]))
            labelMat.append(float(curLine[-1]))
        return dataMat,labelMat
    xArr,yArr=loadDataSet("ex0.txt")

    然后我们就可以开始绘制散点图了。

    1、一般绘制方式:

    import matplotlib.pyplot as plt
    plt.scatter(xArr,yArr)
    plt.show()

    2、设置散点的大小

    plt.scatter(x, y, s)

    通过修改s的值即可,比如设置为5。

    3、更改散点的颜色

    plt.scatter(x, y, s, 'r')

    4、更改散点的样式

    5、为不同数据设置不同样式

    length=len(yArr)//2
    import matplotlib.pyplot as plt
    plt.scatter(xArr[:length],yArr[:length],5,'r','^')
    plt.scatter(xArr[length:],yArr[length:],5,'b',marker='o')
    plt.show()

    6、设置图例

    import matplotlib.pyplot as plt
    plt.scatter(xArr[:length],yArr[:length],5,'r','^',label='triangle')
    plt.scatter(xArr[length:],yArr[length:],5,'b',marker='o',label='circle')
    plt.legend(loc='best')
    plt.show()

    参考:

    https://www.cnblogs.com/sench/p/9522627.html

    https://blog.csdn.net/m0_37393514/article/details/81298503

  • 相关阅读:
    张礼鑫(帮别人名字作诗)
    千年的守望
    感恩
    转载:像成功人士一样释放压力,快乐并高效着
    50个MBA精粹 [推荐]
    赚钱不是人生的全部
    世界上最权威的68句创业名言,哪一句让你获益匪浅
    郝雪涛只爱薛乙静(帮恋人名字作诗)
    心爱的,你为何还不来为我们的爱情赴约
    中国,请还我一个诗的天堂
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12628806.html
Copyright © 2011-2022 走看看