程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

python 100天 86 用scatter()函数绘散点图

hfteth 2025-07-28 16:42:29 技术文章 5 ℃

什么是散点图

散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量变化的大致趋势,据此可以选择合适的函数对数据点进行拟合


看代码

'''
Created on 2023年3月31日
@author: admin
'''
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
np.random.seed(19680801)

N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = (30 * np.random.rand(N))**2 # 0 to 15 point radii

data = {
        'a' : x,
        'b' : y,
        'c' : area,
        'd' : colors
}

fig, ax = plt.subplots()
ax.scatter('a', 'b', s='c', c='d', data=data)
ax.set(xlabel='entry a', ylabel='entry b')
plt.show()

函数参数说明

  • x,y:长度相同的数组,也就是我们即将绘制散点图的数据点,输入数据。
  • s:点的大小,默认 20,也可以是个数组,数组每个参数为对应点的大小。
  • c:点的颜色,默认蓝色 'b',也可以是个 RGB 或 RGBA 二维行数组。
  • 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) 绘制点。

最我简单的例子

import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])

plt.scatter(x, y)
plt.show()


继续画一个3D的图

import matplotlib.pyplot as plt
import numpy as np

plt.style.use('_mpl-gallery')

# Make data
np.random.seed(19680801)
n = 100
rng = np.random.default_rng()
xs = rng.uniform(23, 32, n)
ys = rng.uniform(0, 100, n)
zs = rng.uniform(-50, -25, n)

# Plot
fig, ax = plt.subplots(subplot_kw={"projection": "3d"})
ax.scatter(xs, ys, zs)

ax.set(xticklabels=[],
       yticklabels=[],
       zticklabels=[])

plt.show()


参数的作用大家可以对照函数的参数慢慢调试

最近发表
标签列表