导入相关库:

import numpy as np
import pandas as pd
import matplotlib as mlt
import matplotlib.pyplot as plt
import seaborn as sns

# 如果在Jupyter Notebook中画图,需要加下面这句话来让图像显示在页面上(Jupyter Lab则无所谓)
%matplotlib inline

散点图绘制的函数:plt.scatter()

超级简单的一个示例:

# 变量 x1 和 x2 的关系

# 定义数据
x1 = np.random.randn(10)
x2 = x1 + x1**2 - 10

# 确定画布,当只有一个图的时候,不是必须存在
plt.figure(figsize=(8, 4))

# 绘图
plt.scatter( x1 # 横坐标
            ,x2 # 纵做标
            ,s=5 # 点的尺寸大小
            ,c='blue' # 点的颜色
            ,label='Positive' # 图例名称
           )

# 装饰图形
plt.legend() # 显示图例
# 让图形显示
plt.show()

有时我们需要显示另一个标签y:

# 除了两列标签X外,还有标签Y的存在
X = np.random.randn(10, 2)
y = np.array([0, 0, 1, 1, 0, 1, 0, 1, 0, 0])

plt.figure(figsize=(8, 4))

plt.scatter(X[:, 0]
           ,X[:, 1]
           ,s=50
           ,c=y # 让分类被可视化
           #,label=['Zero', 'Zero', 'One', 'One', 'Zero', 'One', 'Zero', 'One', 'Zero', 'Zero'] # label参数只能对应一个字符串!
						# 如果想要有多多个图例,需要循环去画图
           )

# plt.legend()

plt.show()

label参数只能对应一个字符串,如果想要有多多个图例,需要循环去画图:

colors = ['red', 'black']  # 确定颜色列表
labels = ['Zero', 'One']  # 确定标签类别列表

# 存在几种类别,就要循环几次,每次画一个类别
for i in range(X.shape[1]):
    plt.scatter(X[y==i, 0]
               ,X[y==i, 1]
               ,c=colors[i]
               ,label=labels[i])

plt.legend()
plt.show()