导入相关库:
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()