基于Seaborn和Matplotlib的可视化案例分析

处理数据有时会有点无聊。将原始数据转换为可理解的格式是整个过程中最重要的部分之一,那么为什么只停留在数字上,当我们可以将数据可视化为令人兴奋的图表时,这些图表可以在python中获取。这篇文章将重点探索耐人寻味的预处理之旅。

Seaborn和Matplotlib为我们提供了许多诱人的图表,通过这些图表,人们可以轻松地分析关键点,更深入地了解数据,并最终获得对数据的深刻见解,并在通过不同算法训练后获得最高的准确性。

让我们浏览一下我们的数据集:数据集(36行)包含6个特征和2个类(Survived = 1, Not Survived = 0),我们将根据这些特征绘制某些图表。

数据集链接 https://github.com/Abduttayyeb/Visual-Data-Analysis/blob/master/Graph_Data.csv

1. 年龄段密度分布

好的,在浏览了数据集之后,我们可以有一个问题。哪个年龄段人口最多?要回答这个问题,我们需要KDE Plot的视觉效果,它只是一个密度图。因此,让我们从导入所需的库开始,并使用它的函数绘制图形。

# importing the modules and dataset
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")
 
# KDE plot 
sns.kdeplot(dataset["Age"], color = "green", 
            shade = True)
plt.show()
plt.figure()

基于Seaborn和Matplotlib的可视化案例分析_第1张图片

2. 年龄组[20, 40]计数

所以现在我们有一个清晰的图片,如何计数的人与年龄组的分布,在这里我们可以看到,年龄组20-40有最大的计数,所以让我们检查一下。

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")
  
# Checking the count of Age Group 20-40 
dataset.Age[(dataset["Age"] >= 20) & (dataset["Age"] <= 40)].count()

输出

26

3. Fare 和 Age的关系

深入挖掘视觉效果,了解Fare VS Age的变化,它们之间的关系是什么,让我们使用不同类型的kdeplot 来看看,现在有二元密度,我们只添加Y变量。

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")

sns.kdeplot(dataset["Age"], dataset["Fare"], shade = True)
plt.show()
plt.figure()

基于Seaborn和Matplotlib的可视化案例分析_第2张图片

4.年龄组[20,40]且Fare在[100,200]之间计数

在研究了这个情况后,我们看到,颜色的密度是最大的年龄组之间20-40,而对应的Fare为100-200,让我们检查一下 。

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")

# Checking The Variation Between Fare And Age
dataset.Age[((dataset["Fare"] >= 100) &
			(dataset["Fare"]<=200)) &
			((dataset["Age"]>=20) &
			dataset["Age"]<=40)].count()

输出

16

5. 添加直方图

我们还可以通过使用seaborn的distplot()模块来向kdeplot添加直方图:

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")

# Histogram+Density Plot 
sns.distplot(dataset["Age"], color = "green")
plt.show()
plt.figure()

基于Seaborn和Matplotlib的可视化案例分析_第3张图片

6. 男性与女性的比例

如果你想知道男性与女性的比例,我们可以在KDE中绘制同样的图:

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")

# Adding Two Plots In One
sns.kdeplot(dataset[dataset.Gender == 'Female']['Age'],
			color = "blue")
sns.kdeplot(dataset[dataset.Gender == 'Male']['Age'],
			color = "orange", shade = True)
plt.show()
plt.figure()

基于Seaborn和Matplotlib的可视化案例分析_第4张图片

7.统计年龄在12-40之间数据

正如我们可以从图中看到的,在12岁到40岁之间,计数会增加,让我们检查一下是否相同。

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")

# showing that there are more Male's Between Age Of 12-40 
dataset.Gender[((dataset["Age"] >= 12) &
				(dataset["Age"] <= 40)) &
			(dataset["Gender"] == "Male")].count()
dataset.Gender[((dataset["Age"] >= 12) &
				(dataset["Age"] <= 40)) &
			(dataset["Gender"] == "Female")].count()

输出

17
15

8. 小提琴图

我们已经谈了很多关于特征的,现在让我们谈谈依赖于特征的生存率。为此,我们将使用经典的小提琴图,顾名思义,它描绘了与小提琴音乐波相同的视觉效果。基本上,小提琴图用于可视化数据的分布及其概率密度。

生存率与年龄有什么关系?让我们直观地分析一下:

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")

sns.violinplot(x = 'Survived', y = 'Age', data = dataset,
			palette = {0 : "yellow", 1 : "orange"});
plt.show()
plt.figure()

基于Seaborn和Matplotlib的可视化案例分析_第5张图片
说明:我们在图中看到的白色点是中位数,中间的粗黑条代表四分位数 。
从其延伸的细黑线表示数据中的上(最大)和下(最小)相邻值。
快速浏览显示我们之间的年龄[10-20]的生存率要高(Survived==1)。

9. 存活率和性别与年龄的关系

让我们再画一张存活率与性别和年龄的关系图。

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")

sns.violinplot(x = "Gender", y = "Age", hue = "Survived",
			data = dataset,
			palette = {0 : "yellow", 1 : "orange"})
plt.show()
plt.figure()

这里还有一个属性是hue,它指的是Survived的二进制值。
基于Seaborn和Matplotlib的可视化案例分析_第6张图片

10. CATPLOT

简单地说,catplot显示了一个,两个或三个分类变量的类别的频率(或可选的分数)。

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")

# Plot a nested barplot to show survival for Siblings and Gender
g = sns.catplot(x = "Siblings", y = "Survived", hue = "Gender", data = dataset,
				height = 6, kind = "bar", palette = "muted")
g.despine(lef t= True)
g.set_ylabels("Survival Probability")
plt.show()

基于Seaborn和Matplotlib的可视化案例分析_第7张图片

11. 门票类型与票价

现在,在数据集中,我们看到有三个类别的门票,这是基于票价,让我们找到它(参考此图,我添加了一个类别列门票)

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")

# Based On Fare There Are 3 Types Of Tickets 
sns.catplot(x = "PassType", y = "Fare", data = dataset)
plt.show()
plt.figure()

基于Seaborn和Matplotlib的可视化案例分析_第8张图片

12. 票价与存活率的关系

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")
  
sns.catplot(x="PassType", y="Fare", hue="Survived",kind="swarm",data=dataset)
plt.show()
plt.figure()

基于Seaborn和Matplotlib的可视化案例分析_第9张图片

你可能感兴趣的:(python,数据分析,数据分析,matplotlib)