赞
踩
- #首先创造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()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。