• Python 散点图


    matplotlib 绘制散点图的函数有 mptplotlib.pyplot.plot()、matplotlib.pyplot.scatter(),多数情况下使用 scatter() 函数。

    scatter() 函数主要参数:

    plt.scatter(x,y,  # array_like, 数据点在坐标系中的位置
     s=None,  # 标量或array_like, 标记点的大小, 可选参数
     c=None,  # 标记点的颜色,默认值为 'b'
     marker=None,  # 标记样式,默认为 'o'
     cmap=None,  # 颜色映射
     norm=None,  # 
     vmin=None,
     vmax=None,
     alpha=None,  # 透明度, [0, 1] 上的浮点数
     linewidths=None,  # 线宽
     verts=None,
     edgecolors=None,  # 标记的边缘颜色, 默认为 'face',表示边缘颜色与面颜色相同
     hold=None,
     data=None,
     **kwargs)

     

    一、用 plot() 绘制散点

    示例 1

    import numpy as np
    import matplotlib.pyplot as plt 
    
    # 生成 1000 个服从标准正态分布的样本 
    y = np.random.randn(1000)
    
    # 绘制散点图
    plt.plot(x, linestyle='', marker='.');  # 设置为不画线,标记标记点为圆点

    plt.plot(x, linestyle='', marker='.')  可以简写为 plt.plot(x, '.')

     plot() 函数默认绘制折线图,如果不是简写方式,只是省略 linestyle (略写为 ls) 参数,

    而是写为 plt.plot(x, marker='.'); 则图形如下:

     

     

     2、plot() 在只提供 y 值,不提供 x 值时,默认将 序列或数组 y 索引值当作 x

     所以,示例 1 的完整代码应该是:

    import numpy as np
    import matplotlib.pyplot as plt 
    
    # 生成 1000 个服从标准正态分布的样本 
    y = np.random.randn(1000)
    x = [i for i, _ in enumerate(y)]
    
    # 绘制散点图
    plt.plot(x, y,  linestyle='', marker='.'); 

    对上述代码略作修正,使图表美观一点

    import numpy as np
    import matplotlib.pyplot as plt 
    
    # 生成 1000 个服从标准正态分布的样本 
    y = np.random.randn(1000)
    x = [i for i, _ in enumerate(y)]
    
    # 图表元素中正常显示中文字符
    plt.rcParams['font.sans-serif'] = 'SimHei'
    # 坐标轴刻度标签正常显示负号
    plt.rcParams['axes.unicode_minus'] = False
    
    # 绘制散点图
    plt.plot(x, y, linestyle='', marker='.')
    plt.xticks(size=12, color='grey')  # x 轴刻度标签
    plt.yticks(size=12, color='grey')  # y 轴刻度标签
    plt.title('散点图', size=14, color='y');  # 添加图表标题

    二、用 scatter() 绘制散点图

    示例2

    import numpy as np 
    import matplotlib.pyplot as plt


    # 在区间 [a, b] 上均匀地取指定数量的值
    x = np.linspace(0.05, 10, 1000) np.random.seed(22)
    # 生成 1000 个服从标准正态分布的样本 
    y = np.random.randn(1000)

    plt.scatter(x, y);

      注:标记点默认为圆点,颜色默认为 blue, 边缘颜色默认与标记点的颜色一致。

    对示例2 的图形进行美化

    import numpy as np
    import matplotlib.pyplot as plt
    
    #  在区间 [a, b] 上均匀地取指定数量的值
    x = np.linspace(0.05, 10, 1000)  
    
    np.random.seed(22)
    y = np.random.randn(1000)
    
    # 图表元素中正常显示中文字符
    plt.rcParams['font.sans-serif'] = 'SimHei'
    # 坐标轴刻度标签正常显示负号
    plt.rcParams['axes.unicode_minus'] = False
    
    plt.scatter(x, y,
                s=87,  # 标记点大小
                marker='*',  # 标记点的样式 星号
                c='g',  # green 绿色
                linewidths=0.41,
                edgecolor='y',  # 边缘颜色
                label='scatter figure')
    
    plt.xticks(size=12, color='grey')  # x 轴刻度标签
    plt.yticks(size=12, color='grey')  # y 轴刻度标签
    plt.title('散点图', size=14, color='y');  # 添加图表标题
    plt.legend()  # 添加图例
    
    # 设置坐标轴刻度范围
    plt.xlim(-0.5, 10.5)  
    plt.ylim(-3.5, 3.5);

     

     

     

  • 相关阅读:
    hdu 2199 Can you solve this equation? 二分
    STL 学习代码~
    hdu 1551 Cable master 二分
    fzu 1564 Combination 组合数是否包含因数
    fafu 1079 帮冬儿忙 组合数包含因数个数
    soj 3290 Distribute The Apples I 组合数对素数取余
    fzu 2020 组合 组合数对素数取余
    hdu 1969 Pie 二分
    hdu 2141 Can you find it? 二分
    hdu 2899 Strange fuction 二分
  • 原文地址:https://www.cnblogs.com/shanger/p/13021484.html
Copyright © 2020-2023  润新知