对鸢尾花数据集进行可视化分析(比较全面)

#首先创造python运行的所需要的库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import tensorflow as tf 
%matplotlib inline
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

#下载鸢尾花数据集的数据,并读取
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"  
names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']  
dataset = pd.read_csv(url, names=names)

有了鸢尾花数据集的数据,就可以进行可视化分析了。



 #数据直方图histograms
dataset.hist()

#数据散点图
dataset.plot(x='sepal-length', y='sepal-width', kind='scatter') #散点图,x轴表示sepal-length花萼长度,y轴表示sepal-width花萼宽度

#KDE图,KDE图也被称作密度图(Kernel Density Estimate,核密度估计)
dataset.plot(kind='kde') 

#kind='box'绘制箱图,包含子图且子图的行列布局layout为2*2,
# 子图共用x轴、y轴刻度,标签为False
dataset.plot(kind='box', subplots=True,
 layout=(2,2), sharex=False, sharey=False)

#平行坐标图
parallel_coordinates(iris, 'class')

以上是较为简单的数据可视化分析

然后是三维 散点图

from sklearn import datasets
from sklearn import svm
from sklearn.decomposition import PCA
from matplotlib import pyplot as plt
from matplotlib import patches as pch
from mpl_toolkits.mplot3d import Axes3D


plt.rcParams['font.sans-serif']=['SimHei']#设置正常的中文字体
v_iris=datasets.load_iris()#加载数据赋值给变量
x=v_iris.data[:1]#取数据集第0列,表示萼片的长度,[:0]就是所有行的第0个数据
y=v_iris.data[:2]
species=v_iris.target
v_xreuced=PCA(n_components=3).fit_transform(v_iris.data)
v_fig=plt.figure()
v_ax=Axes3D(v_fig)
v_ax.set_title('鸢尾花降维分类',size=16)
v_ax.scatter(v_xreuced[:,0],v_xreuced[:,1],v_xreuced[:,2],c=species)
v_ax.set_xlabel('第一特征向量')
v_ax.set_ylabel('第二特征向量')
v_ax.set_zlabel('第三特征向量')
v_ax.w_xaxis.set_ticklabels(())
v_ax.w_yaxis.set_ticklabels(())
v_ax.w_zaxis.set_ticklabels(())
plt.show()

散点图矩阵

import matplotlib.pyplot as plt 
import numpy as np 
import tensorflow as tf 
import pandas as pd

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

# 下载鸢尾花数据集
TRAIN_URL = r'http://download.tensorflow.org/data/iris_training.csv'
train_path = tf.keras.utils.get_file(TRAIN_URL.split('/')[-1],TRAIN_URL)

# 加载鸢尾话数据集
names = ['Sepal length','Sepal width','Petal length','Petal width','Species']
# 选择第一行作为列标题,然后再用names作为新的列标题覆盖掉原先的列标题
df_iris = pd.read_csv(train_path,header=0,names=names)
iris_data = df_iris.values

plt.figure(figsize=(15,15),dpi=60)
for i in range(4):
    for j in range(4):
        plt.subplot(4,4,i*4+j+1)
        if i==0:
            plt.title(names[j])
        if j==0:
            plt.ylabel(names[i])
        if i == j:
            plt.text(0.3,0.4,names[i],fontsize = 15)
            continue
        
        plt.scatter(iris_data[:,j],iris_data[:,i],c= iris_data[:,-1],cmap='brg')
        

plt.tight_layout(rect=[0,0,1,0.9])
plt.suptitle('鸢尾花数据集\nBule->Setosa | Red->Versicolor | Green->Virginica', fontsize = 20)
plt.show()

  • 4
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值