pandas探索你的数据实现可视化示例详解
作者:海狸大大
探索泰坦尼克灾难数据
在数据分析的旅程中,可视化数据是一个不可或缺的步骤,它可以帮助我们更好地理解数据、发现趋势和关联。在本篇博客中,我们将使用 Python 中的 pandas、matplotlib 和 seaborn 库,来探索泰坦尼克灾难的数据集,以图表形式呈现数据的各种方面。
步骤1 导入必要的库
首先,我们导入了一些必要的库,包括 pandas 用于数据操作,matplotlib 和 seaborn 用于数据可视化,以及 numpy 用于数值计算。这些库将在整个分析过程中发挥关键作用。
# 运行以下代码 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as np %matplotlib inline
步骤2 从以下地址导入数据
在这一步,我们准备导入泰坦尼克灾难的数据,这些数据存储在名为 "train.csv" 的文件中。数据导入是数据分析的第一步,让我们能够开始探索和分析数据。
# 运行以下代码 path7 = 'exercise_data/train.csv' # train.csv
步骤3 将数据框命名为titanic
我们成功导入数据后,将数据框命名为 "titanic" 并显示前几行数据,以便查看数据的结构和内容。
# 运行以下代码 titanic = pd.read_csv(path7) titanic.head()
步骤4 将PassengerId设置为索引
在这一步,我们将 "PassengerId" 列设置为数据的索引。这可以帮助我们更容易地访问和操作数据。
# 运行以下代码 titanic.set_index('PassengerId').head()
步骤5 绘制一个展示男女乘客比例的扇形图
通过创建扇形图,我们展示了乘客中男性和女性的比例。这是一个简单而有效的方式来可视化性别分布,并了解男女乘客的比例。
# 运行以下代码 # sum the instances of males and females males = (titanic['Sex'] == 'male').sum() females = (titanic['Sex'] == 'female').sum() # put them into a list called proportions proportions = [males, females] # Create a pie chart plt.pie( # using proportions proportions, # with the labels being officer names labels = ['Males', 'Females'], # with no shadows shadow = False, # with colors colors = ['blue','red'], # with one slide exploded out explode = (0.15 , 0), # with the start angle at 90% startangle = 90, # with the percent listed as a fraction autopct = '%1.1f%%' ) # View the plot drop above plt.axis('equal') # Set labels plt.title("Sex Proportion") # View the plot plt.tight_layout() plt.show()
步骤6 绘制一个展示船票Fare, 与乘客年龄和性别的散点图
在这一步,我们创建了一个散点图,将船票价格 (Fare
) 与乘客的年龄和性别进行了比较。这种图表可以帮助我们观察票价与年龄和性别之间的关系。
# 运行以下代码 # creates the plot using lm = sns.lmplot(x = 'Age', y = 'Fare', data = titanic, hue = 'Sex', fit_reg=False) # set title lm.set(title = 'Fare x Age') # get the axes object and tweak it axes = lm.axes axes[0,0].set_ylim(-5,) axes[0,0].set_xlim(-5,85)
(-5.0, 85.0)
步骤7 有多少人生还?
我们统计了生还乘客的数量,这是泰坦尼克灾难中一个重要的统计指标。在这个数据集中,有342人幸存下来。
# 运行以下代码 titanic.Survived.sum()
342
步骤8 绘制一个展示船票价格的直方图
最后,我们创建了一个直方图,显示了不同船票价格的频率分布。这种图表可以帮助我们了解船票价格的分布情况。
# 运行以下代码 # sort the values from the top to the least value and slice the first 5 items df = titanic.Fare.sort_values(ascending = False) df # create bins interval using numpy binsVal = np.arange(0,600,10) binsVal # create the plot plt.hist(df, bins = binsVal) # Set the title and labels plt.xlabel('Fare') plt.ylabel('Frequency') plt.title('Fare Payed Histrogram') # show the plot plt.show()
总结
我们介绍了数据可视化的基本步骤,并使用了 matplotlib 和 seaborn 库来创建不同类型的图表。具体来说,我们使用了扇形图展示比例、散点图展示关系、直方图展示分布情况等。这些图表有助于我们更好地理解泰坦尼克灾难数据,探索性别比例、票价分布以及生还人数等方面的信息。
1、Seaborn简介和基本绘图函数
Seaborn 是一个用于数据可视化的 Python 库,它建立在 Matplotlib 的基础之上,提供了更高级、更美观和更方便的绘图功能。以下是 Seaborn 中常用的一些创建图表的函数:
- sns.scatterplot(): 用于创建散点图,展示两个变量之间的关系。
- sns.lineplot(): 绘制线图,通常用于显示时间序列数据的趋势。
- sns.barplot(): 创建条形图,用于比较不同类别之间的数值关系。
- sns.countplot(): 绘制计数图,用于显示每个类别的频数或计数。
- sns.boxplot(): 绘制箱线图,展示数据的分布和异常值。
- sns.violinplot(): 创建小提琴图,结合了箱线图和核密度估计,用于展示数据分布。
- sns.heatmap(): 生成热力图,通常用于显示相关性矩阵或二维数据的值分布。
- sns.pairplot(): 创建成对关系图,展示数据集中多个变量之间的散点图和直方图。
- sns.distplot(): 绘制单变量的分布图,包括直方图和核密度估计。
- sns.jointplot(): 创建联合图,同时显示两个变量的单变量分布和二维关系。
- sns.lmplot(): 绘制线性回归模型的散点图和回归线。
- sns.catplot(): 用于创建分类图,可以包括多个子图,通常用于比较不同组或类别之间的关系。
- sns.relplot(): 绘制关系图,用于可视化两个或多个变量之间的关系。
2、前文中所用的Seaborn
以前文所使用的lmplot为例:sns.lmplot()
是 Seaborn 库中用于创建线性回归模型图的函数。它通常用于可视化两个变量之间的线性关系,同时可以添加回归线和置信区间。
sns.lmplot(x, y, data, hue=None, col=None, row=None, palette=None, height=5, aspect=1, markers='o', scatter_kws=None, line_kws=None)
参数说明:
x
和y
:分别是数据框中的列名,用于表示 x 轴和 y 轴上的变量。data
:要使用的数据框,包含 x 和 y 列。hue
:可选参数,用于根据某一列的不同取值给数据点着色,通常用于表示分类变量。col
和row
:可选参数,用于在多个子图中绘制不同的图表,通常用于表示分类变量。palette
:可选参数,用于指定颜色调色板,用于着色数据点或线条。height
:图的高度。aspect
:图的纵横比。markers
:可选参数,用于指定数据点的标记样式。scatter_kws
和line_kws
:可选参数,用于传递给散点图和回归线的其他参数。
sns.lmplot()
函数的作用是绘制散点图,并根据数据拟合一个线性回归模型。它通常用于研究两个连续变量之间的关系,以及回归模型的拟合情况。
import seaborn as sns import matplotlib.pyplot as plt # 创建一个示例数据框 data = sns.load_dataset("tips") # 使用lmplot绘制散点图和回归线 sns.lmplot(x="total_bill", y="tip", data=data) # 添加回归线的置信区间 sns.lmplot(x="total_bill", y="tip", data=data, ci=None) # 使用hue参数根据分类变量着色 sns.lmplot(x="total_bill", y="tip", data=data, hue="sex") # 使用col和row参数创建多个子图 sns.lmplot(x="total_bill", y="tip", data=data, col="time", row="sex") # 自定义标记样式和颜色 sns.lmplot(x="total_bill", y="tip", data=data, markers=["o", "x"], palette="Set1") plt.show()
3、Seaborn的样式控制
Seaborn 允许你控制图形的样式和外观,以使你的数据可视化更加美观和易于理解。你可以使用 Seaborn 提供的各种样式设置和主题来自定义图形的外观。
样式设置(Style Set): Seaborn 提供了不同的样式设置,通过 sns.set_style()
函数可以进行切换。常用的样式设置包括 "whitegrid"
、"darkgrid"
、"white"
、"dark"
和 "ticks"
。每种样式设置具有不同的背景和网格线样式,你可以根据需要选择合适的样式。
import seaborn as sns # 使用不同的样式设置 sns.set_style("whitegrid") sns.set_style("darkgrid") sns.set_style("white") sns.set_style("dark") sns.set_style("ticks")
图形主题(Themes): 通过 sns.set_theme()
函数,你可以选择不同的图形主题,包括 "darkgrid"
、"whitegrid"
、"dark"
、"white"
和 "ticks"
,这与样式设置类似。不同的主题将影响整个图形的外观。
import seaborn as sns # 使用不同的图形主题 sns.set_theme(style="darkgrid") sns.set_theme(style="whitegrid") sns.set_theme(style="dark") sns.set_theme(style="white") sns.set_theme(style="ticks")
颜色调色板(Color Palettes): Seaborn 提供了各种颜色调色板,用于指定图形中的颜色。你可以使用 sns.color_palette()
函数来自定义颜色调色板,也可以使用已经定义好的颜色调色板,如 "deep"
、"pastel"
、"dark"
等。
import seaborn as sns # 使用不同的颜色调色板 sns.color_palette("deep") sns.color_palette("pastel") sns.color_palette("dark")
坐标轴刻度(Axis Ticks): 你可以通过 sns.set_context()
函数来控制坐标轴刻度的大小和字体。可选的上下文包括 "paper"
、"notebook"
、"talk"
和 "poster"
。
import seaborn as sns # 设置坐标轴刻度的上下文 sns.set_context("paper") sns.set_context("notebook") sns.set_context("talk") sns.set_context("poster")
这些控制样式的方法可以根据你的需求来自定义 Seaborn 图形的外观,使其更符合你的数据可视化目标和审美标准。你可以根据具体情况组合使用这些设置来创建最适合你的图形样式。
以上就是pandas探索你的数据实现可视化示例详解的详细内容,更多关于pandas数据可视化的资料请关注脚本之家其它相关文章!