机器学习1——KNN算法之绘图

1.数据准备

1.导包

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt #画图使用

2.数据准备

#训练数据
rowdata = {'酒精浓度':[14.23,13.2,13.16,14.37,13.24,12.07,12.43,11.79,12.37,12.04],
          '颜色深度':[5.64,4.38,5.68,4.80,4.32,2.76,3.94,3.  ,2.12,2.6 ],
          '品种':[0,0,0,0,0,1,1,1,1,1]}
#0 代表“黑皮诺”,1代表“赤霞珠”
new_data = np.array([12.8,4.1])

3.将数据转化成DataFrame以便使用

#将原始数据转化dataframe
wine_data = pd.DataFrame(rowdata)
wine_data

2. 将数据绘制到二维图片上去

  • 准备工作:查看所有可用风格

# 查看风格
plt.style.available
  • 准备工作:设置风格

# 设置风格
plt.style.use('ggplot')
  • 准备工作:设置清晰度

# 设置图片清晰度
plt.figure(dpi=200)
  • 准备工作:plt.scatter

# 可视化: scatter, plot

# 参数
# cmap=None, color map映射,设置颜色映射。传入数值序列,会按照数值大小映射成不同的颜色
# c=None,不同颜色分类,比如指定颜色或者直接拿数据处理
# cmap=None, 颜色方案,比如rainbow彩虹

p = plt.scatter(X1, Y1, c=wine_data.品种, cmap='rainbow')#散点图

plt.scatter(x = [1,2,3,4,5,6,7], y=[1,2,3,4,5,6,7], c=[1,2,3,4,5,6,7], cmap='rainbow')
  • 准备工作:横纵坐标数据获取

X1 = wine_data.酒精浓度
Y1 = wine_data.颜色深度
  • 准备工作:Matplotlib支持中文

#Windows电脑 Matplotlib支持中文
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False

#mac电脑 Matplotlib支持中文
plt.rcParams['font.family']=['Arial Unicode MS']

1.数据准备

#将两组数据绘制到同一个图表中,所以需要两个数据data0、data1
data0 = wine_data[wine_data.品种 == 0]
data0

data1 = wine_data[wine_data.品种 == 1]
data1

2.将数据绘制出来(图例在默认左上)

# 设置图片清晰度
plt.figure(dpi=200)
# 分别进行散点图绘制
plt.scatter(data0.酒精浓度, data0.颜色深度, c='purple', label='黑皮诺')
plt.scatter(data1.酒精浓度, data1.颜色深度, c='red', label='赤霞珠')
plt.legend() # 添加图例,将图例显示出来

3.将数据绘制出来(指定图例位置)

# 设置图片清晰度
plt.figure(dpi=200)
# 分别进行散点图绘制
plt.scatter(data0.酒精浓度, data0.颜色深度, c='purple', label='黑皮诺')
plt.scatter(data1.酒精浓度, data1.颜色深度, c='red', label='赤霞珠')
plt.legend(loc='lower right') # 添加图例,修改图例位置

4.将数据绘制出来(追加新数据)

# 将新的数据绘制到图中

# 设置图片清晰度
plt.figure(dpi=200)
# 分别进行散点图绘制
plt.scatter(data0.酒精浓度, data0.颜色深度, c='purple', label='黑皮诺')
plt.scatter(data1.酒精浓度, data1.颜色深度, c='red', label='赤霞珠')
plt.scatter(new_data[0], new_data[1], c='yellow')
plt.legend(loc='lower right') # 添加图例,修改图例位置

你可能感兴趣的:(机器学习1——KNN算法之绘图)