zoukankan      html  css  js  c++  java
  • plt.scatter 各参数详解

    scatter 函数原型

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

    基础参数讲解

    • x, y → 散点的坐标,float or array-like, shape (n, )
    • s → 散点的面积,float or array-like, shape (n, ), optional
    • c → 散点的颜色(默认值为蓝色,'b',其余颜色同plt.plot( ))
    • marker → 散点样式(默认值为实心圆,'o',其余样式同plt.plot( ))
    • alpha → 散点透明度([0, 1]之间的数,0表示完全透明,1则表示完全不透明)
    • linewidths →散点的边缘线宽
    • edgecolors → 散点的边缘颜色

    例子1:

    import matplotlib.pyplot as plt
    import numpy  as np
    import random
    import matplotlib as mpl
    x = np.random.randn(100)
    y = np.random.randn(100)
    plt.scatter(x,y)

          

     

    例子2:

    n = 20 # 生成20个点
    x = np.random.rand(n)
    y = np.random.rand(n)
    plt.scatter(x, y, s=100, c='r', marker='*',alpha=0.3)
    plt.show()

          

     

    例子3:

    plt.scatter(x,y,s=np.power(10*x+10*y,2),c=np.random.randn(100),cmap=mpl.cm.RdYlBu,marker='o')

          

     

    高级参数讲解

    • cmap → 指的是matplotlib.colors.Colormap,相当于多个调色盘的合集
    • norm、vmin、vmax → 散点颜色亮度设置

    例子4:

    rng = np.random.RandomState(0)
    x = rng.randn(50)  # 随机产生50个X轴坐标
    y = rng.randn(50)  # 随机产生50个Y轴坐标
    colors = rng.rand(50)  # 随机产生50个用于颜色映射的数值
    sizes = 700 * rng.rand(50)  # 随机产生50个用于改变散点面积的数值
    plt.scatter(x, y, c=colors, s=sizes, alpha=0.3, cmap='viridis')
    plt.show()

          

    例子5:

    x = np.random.randn(20)
    y = np.random.randn(20)
    plt.scatter(x,y,c=np.random.randn(20),s=np.power(10*x+10*y,2),cmap='viridis')

          

     

     例子6:通过plt.colorbar( )显示为颜色条

    x = np.random.randn(50)  
    y = np.random.randn(50)  
    colors =  np.random.rand(50)  
    plt.scatter(x, y, c=colors, s=60, alpha=0.3, cmap='viridis')
    plt.colorbar()  # 显示颜色条
    plt.show()

            

     

      为更好的观察数据,可重设颜色条的映射范围

      需要用到colors.Normalize( ),使用方法如下:

    class matplotlib.colors.Normalize(vmin=None, vmax=None)

      参数 vmin、vmax 分别为要设置的数据范围的最小值和最大值(注意:设置之后,原来大于vmax的值被“拉低”成vmax;原来小于vmin的值被“拉高”成vmin)

    from matplotlib import colors  # 注意!为了调整“色盘”,需要导入colors
    x = np.random.randn(50)  
    y = np.random.randn(50)  
    color =  np.random.rand(50)  
    changecolor = colors.Normalize(vmin=0.4, vmax=0.8)
    plt.scatter(x, y, c=color, s=60, alpha=0.3, cmap='viridis',norm=changecolor)
    plt.colorbar()  # 显示颜色条
    plt.show()

           

    看完点个关注呗!!(总结不易)

    因上求缘,果上努力~~~~ 作者:每天卷学习,转载请注明原文链接:https://www.cnblogs.com/BlairGrowing/p/15420068.html

  • 相关阅读:
    C++ Boost 函数与回调应用
    C++ Boost库 操作字符串与正则
    C++ Boost库 实现命令行解析
    PHP 开发与代码审计(总结)
    c strncpy函数代码实现
    c strcat函数代码实现
    c strcpy函数代码实现
    c strlen函数代码实现
    Java-IO流-打印流
    Java-IO流-文件复制2
  • 原文地址:https://www.cnblogs.com/BlairGrowing/p/15420068.html
Copyright © 2011-2022 走看看