Seaborn从入门到入土

本文深入探讨了Seaborn库在Python数据可视化中的应用,包括Bar Plot、Point Plot、Joint Plot、Pie Chart等十二种不同类型的图表,通过实例详细展示了每种图表的创建和效果,是Seaborn初学者的宝贵资源。
摘要由CSDN通过智能技术生成

先导入需要的库。

import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
from subprocess import check_output
%matplotlib inline

再倒入数据集,用的iris数据集。

print(check_output(["ls", "./Desktop/iris"]).decode("utf8"))
iris = pd.read_excel('./Desktop/iris/iris.xlsx')
iris.head()
new_col_name = species_data.columns.values.tolist()
new_col_name = [item.lower().strip() for item in new_col_name]
iris.columns = new_col_name

一、Bar Plot

# Bar Plot
#求每种花SepalLengthCm的平均值
species_unique = list(iris.species.unique())
each_species_SepalLengthCm_avg_list = []
for i in species_unique:
    x = iris[iris['species'] == i]
    each_species_SepalLengthCm_avg = sum(x.iloc[:, 0])/len(x.iloc[:, 0])
    each_species_SepalLengthCm_avg_list.append(each_species_SepalLengthCm_avg)
#print(Species_unique)
#print(each_species_SepalLengthCm_avg_list)
each_species_SepalLengthCm_avg_df = pd.DataFrame({'species': species_unique, 
                                                  'each_species_SepalLengthCm_avg': each_species_SepalLengthCm_avg_list})
species_index = each_species_SepalLengthCm_avg_df['each_species_SepalLengthCm_avg'].sort_values(ascending=False).index.values
sorted_data = each_species_SepalLengthCm_avg_df.reindex(species_index)

#作图
plt.figure(figsize=(10, 6))
sns.barplot(x=sorted_data['species'], y=sorted_data['each_species_SepalLengthCm_avg'])
plt.xticks(rotation=45)

#输出图表:
在这里插入图片描述

二、Point Plot

#Point Plot
species_data = iris[iris['species'] == 'setosa']
f, ax1 = plt.subplots(figsize=(15, 8))
sns.pointplot(x=species_data.iloc[:, 0], y=species_data.iloc[:, 1], color='lime', alpha=0.8)
sns.pointplot(x=species_data.iloc[:, 0], y=species_data.iloc[:, 2], color='red', alpha=0.8)
plt.text(4.7, 4, 'SepalLengthCm VS SepalWidthCm', color='lime', fontsize=17, style='italic')
plt.text(4.7, 2, 'SepalLengthCm VS PetalLengthCm', color='red', fontsize=18, style='italic')
plt.title('prepariton')
plt.grid()
plt.savefig('./Desktop/iris/Point Plot.png')

#输出图表:
在这里插入图片描述

三、Joint Plot

#Joint Plot
#kind must be either 'scatter', 'reg', 'resid', 'kde', or 'hex'
sns.jointplot(x=species_data.iloc[:, 0], y=species_data.iloc[:, 1], kind='reg', size=7, color='r')
plt.savefig('./Desktop/iris/Joint Plot.png')

#输出图表:
在这里插入图片描述

四、Pie Chart

#Pie Chart
species = iris['species'].value_counts().index.tolist()
counter = iris['species'].value_counts().values.tolist()
plt.figure(figsize=(7, 7))
plt.pie(counter,labels=species, autopct='%1.1f%%')
plt.savefig('./Desktop/iris/Pie Chart.png')

#输出图表:
在这里插入图片描述

五、Lm Plot

#Lm Plot
sns.lmplot(x="sepallengthcm", y="sepalwidthcm", data=species_data)
plt.savefig('./Desktop/iris/Lm Plot.png')

#输出图表:
在这里插入图片描述

六、Kde Plot

#Kde Plot
sns.kdeplot(species_data.iloc[:,0], species_data.iloc[:, 1], shade=True, cut=2, color='g')
plt.savefig('./Desktop/iris/Kde Plot.png')

#输出图表:
在这里插入图片描述

七、Violin Plot

#Violin Plot
data = species_data[['species', 'sepallengthcm', 'sepalwidthcm']]
sns.violinplot(data=data, inner='points')
plt.savefig('./Desktop/iris/Violin Plot.png')

#输出图表:
在这里插入图片描述

八、Heatmap

#Heatmap
plt.subplots(figsize=(5, 6))
sns.heatmap(data.corr(), annot=True, linewidths=0.5, linecolor='g', fmt='.1f')
plt.savefig('./Desktop/iris/Violin Plot.png')

#输出图表:
在这里插入图片描述

九、Box Plot

#Box Plot
data = iris[['species', 'sepallengthcm', 'sepalwidthcm']]
sns.boxplot(x="species", y="sepalwidthcm", data=data)
sns.stripplot(x="species", y="sepalwidthcm", data=data,jitter=True, edgecolor='gray')
plt.savefig('./Desktop/iris/Box Plot.png')

#输出图表:
在这里插入图片描述

十、Swarm Plot and Stripplot

#Swarm Plot and Stripplot
#区别在于:Swarm Plot解决了Stripplot中重叠的点,通过算法,在类别坐标轴的方向上去‘延伸’绘制这些原本重合的点
fig, ax = plt.subplots(2,1,figsize=(8, 6))
ax1 = sns.swarmplot(x="species", y="sepalwidthcm", data=data,ax=ax[0])
ax2 = sns.stripplot(x="species", y="sepalwidthcm", data=data, ax=ax[1])
plt.savefig('./Desktop/iris/Swarm Plot and Stripplot.png')

#输出图表:
在这里插入图片描述

十一、Pair Plot

#Pair Plot
sns.pairplot(data=data, hue='species', size=3)
plt.savefig('./Desktop/iris/Pair Plot.png')

#输出图表:
在这里插入图片描述

十二、Count Plot

#Count Plot
sns.countplot(x = data['species'])
plt.savefig('./Desktop/iris/Count Plot.png')

#输出图表:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值