• Python散点图


    散点图

    散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。散点图将序列显示为一组点。值由点在图表中的位置表示。类别由图表中的不同标记表示。散点图通常用于比较跨类别的聚合数据,其应用有很多,总结两个常见的应用如下:

    • 回归分析。散点图用于回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。散点图经过回归分析之后,可以对相关对象进行预测分析,能让我们发现变量之间隐藏的关系,进而做出科学的决策,而不是模棱两可。比如,下面房价的散点图可以为我们直观呈现不同城市的房价上涨情况,为后续的房价政策调整做出重要的支持。
    • 相关分析。散点图用于相关性分析中,用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。通过观察散点图上数据点的分布情况,我们可以推断出变量间的相关性。如果变量之间不存在相互关系,那么在散点图上就会表现为随机分布的离散的点,如果存在某种相关性,那么大部分的数据点就会相对密集并以某种趋势呈现。变量间的关系有很多,如线性关系、指数关系、对数关系等等,当然,没有关系也是一种重要的关系。

    1.scatter()

    我们使用pyplot 中的 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)
    
    • 1

    2.参数说明

    x,y:长度相同的数组,也就是我们即将绘制散点图的数据点,输入数据。

    s:点的大小,默认 20,也可以是个数组,数组每个参数为对应点的大小。

    c:点的颜色,默认蓝色 ‘b’,也可以是个 RGB 或 RGBA 二维行数组。

    颜色标记描述
    ‘r’red
    ‘g’green
    ‘b’blue
    ‘c’cyan
    ‘m’magenta
    ‘y’yellow
    ‘k’black
    ‘w’white

    marker:点的样式,默认小圆圈 ‘o’。

    在这里插入图片描述

    cmap:Colormap,默认 None,标量或者是一个 colormap 的名字,只有 c 是一个浮点数数组的时才使用。如果没有申明就是 image.cmap。

    norm:Normalize,默认 None,数据亮度在 0-1 之间,只有 c 是一个浮点数的数组的时才使用。

    vmin,vmax::亮度设置,在 norm 参数存在时会忽略。

    alpha::透明度设置,0-1 之间,默认 None,即不透明。

    linewidths::标记点的长度。

    edgecolors::颜色或颜色序列,默认为 ‘face’,可选值有 ‘face’, ‘none’, None。

    plotnonfinite::布尔值,设置是否使用非限定的 c ( inf, -inf 或 nan) 绘制点。

    **kwargs::其他参数。

    基本x-y坐标

    在这里插入图片描述

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
    y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
    plt.scatter(x, y, color = 'r',marker='v')
    
    x = np.array([2,2,8,1,15,8,12,9,7,3,11,4,7,14,12])
    y = np.array([100,105,84,105,90,99,90,95,94,100,79,112,91,80,85])
    plt.scatter(x, y, color = 'b',marker='*')
    
    plt.title(" TITLE")
    plt.xlabel("x - label")
    plt.ylabel("y - label")
    
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    分类比较

    在这里插入图片描述

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.array([177, 185, 166, 160, 175, 176, 157, 154, 141, 191])
    y = np.array(["Type A"] * 10)
    plt.scatter(x, y, color='b')
    meanA = x.mean()
    
    x = np.array([178, 179, 180, 190, 188, 174, 156, 192, 189, 179])
    y = np.array(["Type B"] * 10)
    plt.scatter(x, y, color='r')
    meanB = x.mean()
    
    x = np.array([162, 168, 167, 155, 176, 197, 173, 158, 178, 190])
    y = np.array(["Type C"] * 10)
    plt.scatter(x, y, color='g')
    meanC = x.mean()
    
    x = np.array([meanA, meanB, meanC])
    y = np.array(["mean"] * 3)
    color = np.array(["b", "r", "g"])
    plt.scatter(x, y, color=color)
    
    # plt.axhline(y=,ls=":",c="yellow")#添加水平直线
    for i, j in zip(x, color):
        plt.axvline(x=i, ls="-", c=j)  # 添加垂直直线
    
    for i in range(len(x)):
        plt.annotate('%s' % x[i], xy=(x[i], y[i]))
    
    plt.xlabel("performance")
    plt.ylabel("Type")
    plt.title('compare A B C')
    plt.show()
    # plt.savefig("compare.png")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
  • 相关阅读:
    Git 如何合并commits成一个(squash)
    10月24日,每日信息差
    RabbitMQ-死信队列
    Vue+Koa+MongoDB从零打造一个任务管理系统
    操作系统学习(八)进程同步与通信
    基于Keras_bert模型的Bert使用与字词预测
    【Java基础面试二】、为什么Java代码可以实现一次编写、到处运行?
    归并排序与计数排序
    一、CC2530开发环境搭建
    2022最全Java后端面试真题、两万字1000+道堪称史上最强的面试题不接受任何反驳
  • 原文地址:https://blog.csdn.net/weixin_43912621/article/details/132776267