栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

#首先创造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()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/275735.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号