数据可视化库 matplotlib 入门 6——散点图

Matplotlib 库使用入门6——散点图

在前面关于 matploblib 的文章中,笔者分别介绍了:

本篇介绍 matplotlib 绘制散点图的方法。散点图(Scatter)用于在水平轴和垂直轴上绘制数据点,它展示了因变量随自变量变化的趋势,反映的是一个变量受另一个变量的影响程度。
散点图将序列显示为一组点,其中每个散点值都由该点在图表中的坐标位置表示。对于不同类别的点,则由图表中不同形状、大小或颜色的标记符表示。

scatter() 函数

Matplotlib 提供了 scatter() 函数来绘制散点图,它可以应用在 MATLAB 样式以及面向对象的绘图方法中。当它与 axes 对象一起使用时,其语法格式如下:

  • axes.scatter(x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, *, edgecolors, plotnonfinite=False, data, **kwargs)
    x,y:长度相同的数组,绘制散点图的数据点。
    s:点的大小,默认 20,也可以是个数组,数组每个参数为对应点的大小。
    c:点的颜色,默认蓝色 ‘b’,也可以是个 RGB 或 RGBA 二维行数组。
    marker:点的样式,默认小圆圈 ‘o’,可以为’.', ‘,’, ‘o’, ‘v’, ‘^’, ‘<’, ‘>’, ‘1’, ‘2’, ‘3’, ‘4’, ‘s’, ‘p’, ‘*’, ‘h’, ‘H’, ‘+’, ‘x’, ‘D’, ‘d’, ‘|’, ‘_’, ‘None’, None, ’ ', ‘’, ‘ . . . ... ...’ 之一,或者一个 Path 实例,或者一个元组(numsided, style, angle):numsided 指定边的数量,style 可以为0(正多边形)、1(星状符号)、2(星)、3(圆),angle 指定散点旋转角度。
    cmap:指定 colormap,可以是 Colormap 实例或者它的名字,当参数 c 为浮点数组时才有效。
    norm:默认 None,指定数据亮度在 0-1 之间,当 c 是一个浮点数组时才使用。
    vmin,vmax:用于辅助默认的 norm 调整亮度,在 norm 参数存在时忽略。
    alpha:透明度设置,0-1 之间,默认 None,即不透明。
    linewidths:一个标量或者序列,设置线宽。
    edgecolors:设定边线的颜色或颜色序列。
    plotnonfinite:布尔值,设置是否使用非限定的 c ( inf, -inf 或 nan) 绘制点。

绘制散点图示例

示例:

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure('Scatter example1', figsize=(9.5, 6.5))

X = np.arange(1, 11)
a_scores = np.array([51, 63, 70, 89, 97, 80, 90, 100, 80, 34])
b_scores = np.array([40, 19, 49, 38, 100, 68, 58, 45, 20, 30])
c_scores = np.array([30, 47, 29, 58, 90, 76, 52, 40, 70, 19])
ax = fig.add_subplot(121)
ax.scatter(X, a_scores, c='r', marker='v', label='a_scores')  # 设置散点的颜色、形状,指定标签
ax.scatter(X, b_scores, c='y', s=[i*2 for i in b_scores], marker=(5, 0, 30), alpha=0.7, edgecolors='c', label='b_scores')  # 绘制不同大小的散点,指定了颜色、形状、透明度、边线颜色
ax.scatter(X, c_scores, c=['b' if i > 50 else 'g' for i in c_scores], s=50, label='c_scores')  # 根据分值是否大于50绘制不同颜色的散点
ax.set_xlabel('N')
ax.set_ylabel('scores')
ax.set_title('Scatter plot 1')
ax.legend()

X = np.arange(1, 101)
ax2 = fig.add_subplot(122)
y1 = X + 10 + np.random.randint(0, 30, 100)
y2 = 2 * X - 10 + np.random.randint(0, 30, 100)
ax2.scatter(X, y1, marker='^', label='y1_values')
ax2.scatter(X, y2, c='r', label='y2_values')
ax2.set_xlabel('x')
ax2.set_ylabel('y')
ax2.set_title('Scatter plot 2')
ax2.legend()

plt.show()

上述代码绘制图像如下:

在这里插入图片描述

以上。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将echarts折线图改成散点图,你可以按照以下步骤进行修改: 1. 首先,将代码示例中的option对象中的type属性从'line'改为'scatter',以指定图表类型为散点图。 修改后的代码示例如下: ``` series: \[ { name:'曲线1', symbolSize: 5, data: \[ \[0, 2\], \[2, 5\], \[3, 9\], \[5, 16\], \[7, 24\], \[9, 18\], \[12, 15\], \[15, 5\], \[17, 2\], \[19, 1\] \], type: 'scatter', smooth: true, showSymbol: false, barGap: 0 }, { name:'曲线2', symbolSize: 5, data: \[ \[0, 1\], \[2, 3\], \[3, 7\], \[5, 13\], \[7, 21\], \[9, 16\], \[12, 12\], \[15, 3\], \[17, 1\], \[19, 0\] \], type: 'scatter', smooth: true, showSymbol: false, barGap: 0 } \] ``` 2. 然后,根据你的需求,可以进一步调整散点图的其他配置项,比如symbolSize属性可以调整散点的大小,smooth属性可以控制是否平滑显示散点图等。 完成以上修改后,你的echarts折线图就成功改成了散点图。 #### 引用[.reference_title] - *1* *3* [echarts图表-饼图、柱状图、折线图、散点图之间相互切换](https://blog.csdn.net/m0_72603435/article/details/127970766)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [echarts-散点图数值对实现折线图](https://blog.csdn.net/fightingcoder419/article/details/79817562)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值