首页 > 分享 > 鸢尾花的可视化(散点图、小提琴图、以及pyearchs平行坐标图)

鸢尾花的可视化(散点图、小提琴图、以及pyearchs平行坐标图)

一、鸢尾花散点图

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

from sklearn import datasets

iris = datasets.load_iris()

x, y = iris.data, iris.target

pd_iris = pd.DataFrame(np.hstack((x, y.reshape(150, 1))),

columns=['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class'])

print(pd_iris)

plt.figure(dpi=150)

plt.style.use('seaborn')

iris_type = pd_iris['class'].unique()

print(iris_type)

iris_name = iris.target_names

colors = ['#c72e29', '#098154', '#fb832d']

markers = ['$clubsuit$', 'o', '^']

for i in range(len(iris_type)):

plt.scatter(pd_iris.loc[pd_iris['class'] == iris_type[i], 'sepal_length'],

pd_iris.loc[pd_iris['class'] == iris_type[i], 'sepal_width'],

s=50,

c=colors[i],

marker=markers[i],

alpha=0.8,

facecolors='r',

edgecolors='none',

linewidths=1,

label=iris_name[i])

plt.legend(loc='upper right')

plt.show()

说明其中代码难点

#取出setosa组的子dataFrame 而且全是setosa类别
setosa=pd_iris[pd_iris['class'] == iris_type[0]]
# print(setosa)

#pd.loc[行,列],在行的选择中引入了条件选取
B=pd_iris.loc[pd_iris['class'] == iris_type[0], 'sepal_length'] 
# print(B)

散点图如下:

 二、鸢尾花的箱型图

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

from sklearn import datasets

iris = datasets.load_iris()

x, y = iris.data, iris.target

pd_iris = pd.DataFrame(np.hstack((x, y.reshape(150, 1))),

columns=['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class'])

print(pd_iris)

plt.figure(dpi=150)

plt.style.use('seaborn-white')

color_list=["#D1B6E1",'#30A9DE','#58C9B9','#9DC8C8']

lables=['sepal_length', 'sepal_width', 'petal_length', 'petal_width']

f=plt.boxplot(pd_iris[['sepal_length', 'sepal_width', 'petal_length', 'petal_width']],

labels=['sepal_length', 'sepal_width', 'petal_length', 'petal_width'],

patch_artist=True,

sym='o',

showbox=True,

showmeans = True,

widths=0.2

)

for box, c in zip(f['boxes'], color_list):

box.set(color=c, linewidth=2)

box.set(facecolor=c)

for whisker in f['whiskers']:

whisker.set(color='r', linewidth=0.5)

for cap in f['caps']:

cap.set(color='g', linewidth=1)

for median in f['medians']:

median.set(color='DarkBlue', linewidth=1)

for flier in f['fliers']:

flier.set(marker='o', color='y', alpha=0.5)

for means in f['means']:

means.set(color='black')

plt.title('my boxplot')

plt.show()

箱型图如下:

三、鸢尾花的小提琴图

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

import seaborn as sns

from sklearn import datasets

iris = datasets.load_iris()

x, y = iris.data, iris.target

pd_iris = pd.DataFrame(np.hstack((x, y.reshape(150, 1))),

columns=['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class'])

print(pd_iris)

plt.figure(dpi=150)

plt.style.use('seaborn-white')

label = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']

font_1 = {"size": 14}

sns.violinplot(data =pd_iris[['sepal_length', 'sepal_width', 'petal_length', 'petal_width']])

plt.xlabel("category", font_1)

plt.ylabel("Length or width", font_1)

plt.xticks(ticks = [0, 1, 2 ,3], labels = label, fontsize = 11)

plt.yticks(fontsize = 12)

plt.show()

小提琴图如下:

四、鸢尾花的平行坐标图

from pyecharts import options as opts

from pyecharts.charts import Parallel

import pandas as pd

result=pd.read_csv('iris.csv')

print(result)

A=result[result['species']=='setosa']

B=result[result['species']=='versicolor']

C=result[result['species']=='virginica']

print(result['sepal_length'].max())

data1=[]

for a in range(0,len(A)):

data1.append(A.values.tolist()[a][0:])

data2=[]

for b in range(0,len(B)):

data2.append(B.values.tolist()[b][0:])

data3=[]

for c in range(0,len(C)):

data3.append(C.values.tolist()[c][0:])

print(data1,'n',data2,'n',data3)

c = ( Parallel()

.add_schema(

[

opts.ParallelAxisOpts(dim=0, name="sepal length",is_scale=True ,min_=4,max_=8),

opts.ParallelAxisOpts(dim=1, name="sepal width",is_scale=True,min_=2,max_=4.5),

opts.ParallelAxisOpts(dim=2, name="petal length",is_scale=True,min_=1,max_=7),

opts.ParallelAxisOpts(dim=3, name="petal width",is_scale=True,min_=0,max_=2.5),

opts.ParallelAxisOpts(dim=4, name="分类", type_="category",

data=["setosa", "versicolor", "virginica"]),

])

.add("setosa", data1)

.add("versicolor", data2)

.add("virginica", data3)

.set_global_opts(title_opts=opts.TitleOpts(

title="Parallel cordlnate plot, Fisher's iris data",pos_top="top",pos_right="center"),

legend_opts=opts.LegendOpts( pos_top="bottom",pos_right="center"),yaxis_opts=opts.AxisOpts(

min_='dataMin',max_="dataMax"

))

.render("parallel.html")

)

平行坐标图如下:

相关知识

鸢尾花数据集如何可视化
Python实现平行坐标图的绘制(plotly)
3.4 数据可视化
鸢尾花分类与直方图、散点图的绘制及可视化决策树
对鸢尾花数据集中的萼片长度、萼片宽度、花瓣长度和花瓣宽度绘制平行坐标图
数据可视化——鸢尾花数据集的分析与散点图的绘制
python花瓣长度和花瓣宽度散点图鸢尾花
Iris鸢尾花数据集可视化、线性回归、决策树分析、KMeans聚类分析
python 怎么加载鸢尾花数据
R语言鸢尾花iris数据集的层次聚类分析 – 拓端

网址: 鸢尾花的可视化(散点图、小提琴图、以及pyearchs平行坐标图) https://m.huajiangbk.com/newsview1544660.html

所属分类:花卉
上一篇: 鸢尾花数据分类
下一篇: Python编程之美:探索海棠花