1、 导入库
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
# 使图像显示负号
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体/Microsoft YaHei
mpl.rcParams['axes.unicode_minus'] = False
2、 散点图–颜色–plt.cm.tab10的应用
1 np.unique 对数组去重
2 plt.cm.tab10(i/len(lab))生成的是元组,而这里不允许一维数据输入,所以将它转化为array后再转化为一个1*4的数组
reshape(-1,1)转化为n*1的数组
reshape(1,-1)转化为1*n的数组
dataSet = pd.read_csv(r"F:\Pycharmworkspace\data\多分类问题\客户类别分类_多分类.csv",sep=',')
# 获取数据标签列的类别,并去重
lab = np.unique(dataSet['custcat'])
plt.figure(figsize=(8,5))
for i in range(len(lab)):
plt.scatter(dataSet.loc[dataSet.iloc[:,-1] == lab[i],'age']
,dataSet.loc[dataSet.iloc[:,-1] == lab[i],'income']
,s=10
,c=np.array(plt.cm.tab10(i/len(lab))).reshape(1,-1)
,label = lab[i]
)
plt.legend()
plt.show()
3、 散点图–画布—figure的应用
plt.figure(figsize=(8,5) #画布大小
,dpi=80 #图像分辨率
,facecolor='#00ff00' #背景颜色,默认白色
,edgecolor='k' #边框颜色,默认黑色
)
plt.scatter(np.array(range(10)),np.array(range(10))*2+1,c='b',s=20)
plt.show()
4、 散点图–装饰图像
# gca获取现有图像
# set规定图像的横纵坐标范围
# xlim,ylim 设置范围
plt.gca().set(xlim=(0,100), ylim=(0,2000))
plt.xticks(fontsize=12) #X轴的坐标字体大小
plt.yticks(fontsize=12) #Y轴的坐标字体大小
plt.xlabel('Age',fontsize=22) #X轴的标题及字体大小
plt.ylabel('Income',fontsize=22) #Y轴的标题及字体大小
plt.title("图像的标题", fontsize=22) #图像的标题及字体
plt.legend(fontsize=12) #图例的字体大小
plt.show()
5、 散点图–封装方法
DataFarme是一个pandas.core.series.Series类型的数据
# x1:特征1列 x2:特征2列 y:标签列
def FZscatter(x1,x2,y):
# 标签类别
lab = np.unique(y.values)
plt.figure(figsize=(8, 5))
for i in range(len(lab)):
plt.scatter(x1[y.values[:] == lab[i]]
, x2[y.values[:] == lab[i]]
, s=10
, c=np.array(plt.cm.tab10(i / len(lab))).reshape(1, -1)
, label=lab[i]
)
plt.legend()
plt.show()
FZscatter(dataSet.loc[:,'age'],dataSet.loc[:,'income'],dataSet.iloc[:,-1])