加载sklearn 的datasets 模块自带数据集,它收集了三个品种,每个样本4个特征的鸢尾花数据,用于分类和聚类。
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn import datasets
iris = datasets.load_iris()
print('iris.data的形状为:',iris.data.shape)
print('iris.target的形状为:',iris.target.shape)
print('iris.data的特征名称为:',iris.feature_names)
plt.rcParams['font.sans-serif'] = 'SimHei'#设置字体为SimHei显示中文\n",
p = plt.figure(figsize=(12,10))
# 子图1,两特征的三点图\n",
ax1 = p.add_subplot(3,2,1)
plt.scatter(iris.data[:,0],iris.data[:,1], marker='o')#绘制散点图\n",
plt.xlabel(iris.feature_names[0])#添加横轴标签\n",
plt.ylabel(iris.feature_names[1])#添加y轴名称\n",
plt.title('iris数据集特征散点图')#添加标题\n",
#子图2,4个特征的点线图\n",
ax1 = p.add_subplot(3,2,2),
plt.plot(iris.data[:,0],color = 'r',linestyle = '--',marker = 'o')
plt.plot(iris.data[:,1],color = 'g',linestyle = '-',marker = '*')
plt.plot(iris.data[:,2],color = 'b',linestyle = '-',marker = '^')
plt.plot(iris.data[:,3],color = 'k',linestyle = '-',marker = '<')
plt.legend([iris.feature_names[0],iris.feature_names[1],
iris.feature_names[2],iris.feature_names[3]])
plt.xlabel('index')#添加横轴标签\n",
plt.ylabel('feature values')#添加y轴名称\n",
plt.title('iris数据集特征点线图')#添加标题\n",
ax1 = p.add_subplot(3,2,3)
plt.bar(range(len(iris.data[0:20,0])),iris.data[0:20,0],
width = 0.5)## 绘制柱状图\n",
plt.title('iris特征0柱状图')#添加标题\n",
#labels=[iris.feature_names[0]]\n",
plt.xlabel(iris.feature_names[0])#添加横轴标签\n",
plt.ylabel('feature values')#添加y轴名称\n",
#plt.xticks(range(0),labels)\n",
# 子图4,各特征和的饼图\n",
ax1 = p.add_subplot(3,2,4)
plt.pie([np.sum(iris.data[:,0]),np.sum(iris.data[:,1]),
np.sum(iris.data[:,2]),np.sum(iris.data[:,3])],
labels=iris.feature_names,autopct='%1.1f%%')#绘制饼图\n",
plt.title('iris数据集各特征和的饼图')
# 子图5,箱线图\n",
ax1 = p.add_subplot(3,2,5)
plt.boxplot([iris.data[:,0],iris.data[:,1],
iris.data[:,2],iris.data[:,3]],
notch=True,labels =iris.feature_names,
meanline=True)
plt.title('iris数据集各特征箱线图')#添加标题\n",
plt.xlabel('特征')#添加横轴标签\n
plt.ylabel('特征值')#添加y轴名称\n",
plt.xticks([1,2,3,4],iris.feature_names,rotation=15)
# 子图6,特征直方图\n",
ax1 = p.add_subplot(3,2,6)
plt.hist(iris.data[:,0],density=True,color='r')
plt.hist(iris.data[:,1],density=True,color='g')
plt.hist(iris.data[:,2],density=True,color='b')
plt.hist(iris.data[:,3],density=True,color='k')
plt.title('iris特征直方图(概率)')
plt.legend(iris.feature_names)
plt.tight_layout() #调整子图间距,避免重叠\n",
plt.show()