首页 > 其他分享 >pandas探索你的数据(七)-可视化

pandas探索你的数据(七)-可视化

时间:2023-10-10 11:45:51浏览次数:34  
标签:set 探索 data lmplot plt 可视化 sns 数据 pandas

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 中常用的一些创建图表的函数:

  1. sns.scatterplot(): 用于创建散点图,展示两个变量之间的关系。

  2. sns.lineplot(): 绘制线图,通常用于显示时间序列数据的趋势。

  3. sns.barplot(): 创建条形图,用于比较不同类别之间的数值关系。

  4. sns.countplot(): 绘制计数图,用于显示每个类别的频数或计数。

  5. sns.boxplot(): 绘制箱线图,展示数据的分布和异常值。

  6. sns.violinplot(): 创建小提琴图,结合了箱线图和核密度估计,用于展示数据分布。

  7. sns.heatmap(): 生成热力图,通常用于显示相关性矩阵或二维数据的值分布。

  8. sns.pairplot(): 创建成对关系图,展示数据集中多个变量之间的散点图和直方图。

  9. sns.distplot(): 绘制单变量的分布图,包括直方图和核密度估计。

  10. sns.jointplot(): 创建联合图,同时显示两个变量的单变量分布和二维关系。

  11. sns.lmplot(): 绘制线性回归模型的散点图和回归线。

  12. sns.catplot(): 用于创建分类图,可以包括多个子图,通常用于比较不同组或类别之间的关系。

  13. 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)

参数说明:

  • xy:分别是数据框中的列名,用于表示 x 轴和 y 轴上的变量。

  • data:要使用的数据框,包含 x 和 y 列。

  • hue:可选参数,用于根据某一列的不同取值给数据点着色,通常用于表示分类变量。

  • colrow:可选参数,用于在多个子图中绘制不同的图表,通常用于表示分类变量。

  • palette:可选参数,用于指定颜色调色板,用于着色数据点或线条。

  • height:图的高度。

  • aspect:图的纵横比。

  • markers:可选参数,用于指定数据点的标记样式。

  • scatter_kwsline_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 提供的各种样式设置和主题来自定义图形的外观。

  1. 样式设置(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")
    
  2. 图形主题(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")
    
  3. 颜色调色板(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")
    
  4. 坐标轴刻度(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 图形的外观,使其更符合你的数据可视化目标和审美标准。你可以根据具体情况组合使用这些设置来创建最适合你的图形样式。

本文由mdnice多平台发布

标签:set,探索,data,lmplot,plt,可视化,sns,数据,pandas
From: https://www.cnblogs.com/haidao09/p/17754265.html

相关文章

  • MongoDB可视化管理工具-MongoDB Compass【转】
    一、引言在使用MongoDB过程中,如果单单依靠命令行操作MongoDB数据库,效率不高而且查看不方便。因此MongoDB官网提供的一个可视化管理工具,叫MongoDBCompass,它集创建数据库、管理集合和文档、运行临时查询、评估和优化查询、性能图表、构建地理查询等功能为一体,很方便。二、......
  • Go函数全景:从基础到高阶的深度探索
    在本篇文章中,我们深入探索了Go语言中的函数特性。从基础的函数定义到特殊函数类型,再到高阶函数的使用和函数调用的优化,每一个部分都揭示了Go的设计哲学和其对编程效率的追求。通过详细的代码示例和专业解析,读者不仅可以掌握函数的核心概念,还能了解如何在实践中有效利用这些特性来......
  • Pandas中如何统计各个销售地出线的次数?
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【wen】问了一个Pandas数据处理的问题,一起来看看吧。他的代码如下:importpandasaspdresults=[]df=pd.read_excel('G:\合并结果+2023-09-22.xlsx',dtype=str).convert_dtypes()list=set(df['销售地'])fori......
  • 有限状态机在国际计费中的应用探索 | 京东物流技术团队
    今天的话题,我们从一个案例开始谈起。国际计费系统会定期自动生成账单,然后每个账单会按照预设的规则自动进入结算流程,账单从生成之后到结算完成,这期间需要销售支持、结算岗、客户(商家或服务商)、财务、资金等多个不同岗位角色的人员共同参与处理,每个角色处理的环节和操作内容不同,账单......
  • GraphPad Prism 9:探索科研医学数据的视觉传奇 mac+win版
    GraphPadPrism9,这不仅仅是一款数据绘图和分析软件,更是一款引领你走进科研医学世界的工具。无论你是科研工作者还是医学研究者,GraphPadPrism9都能帮你将复杂的数据转化为直观、精美的图表,为你的研究提供清晰的视觉呈现。→→↓↓载GraphPadPrism9mac/win版GraphPadP......
  • 数据可视化有哪些发展优势?能在哪些场景下应用
    数据可视化有以下几个发展优势:1.提升数据理解和洞察力:数据可视化通过图表、图形等形式将抽象的数据转化为直观可见的形象,帮助人们更容易理解和洞察数据。视觉化的方式可以使人们对数据的关联、趋势和模式有更深入的认识,从而提供更全面的信息基础。2.强调关键信息:通过合适的设......
  • 有限状态机在国际计费中的应用探索
    今天的话题,我们从一个案例开始谈起。国际计费系统会定期自动生成账单,然后每个账单会按照预设的规则自动进入结算流程,账单从生成之后到结算完成,这期间需要销售支持、结算岗、客户(商家或服务商)、财务、资金等多个不同岗位角色的人员共同参与处理,每个角色处理的环节和操作内容不同,账......
  • Python贝叶斯高斯混合模型GMM聚类分析数据和混合密度可视化
    全文链接:https://tecdat.cn/?p=33821原文出处:拓端数据部落公众号混合模型是另一种生成模型,它将数据点的分布建模为多个单独分布的组合("混合")。客户常见的混合模型类型是高斯混合模型,其中数据生成分布被建模为多个高斯分布的组合。  importnumpyasnpimportmatplo......
  • Python随机波动模型Stochastic volatility,SV随机变分推断SVI分析标普500指数股票价格
    全文链接:https://tecdat.cn/?p=33809原文出处:拓端数据部落公众号随机波动模型(Stochasticvolatilitymodels)经常被客户用来对股票价格随时间的变动性进行建模。波动性(volatility)是随时间的对数收益的标准差。与假设波动性恒定不变不同,随机波动模型具有隐变量参数,可以在每个时刻......
  • 智慧茶园:茶厂茶园监管可视化视频管理系统解决方案
    一、方案背景我国是茶叶生产大国,茶叶销量全世界第一。随着经济社会的发展和人民生活水平的提高,对健康、天然的茶叶产品的消费需求量也在逐步提高。茶叶的种植、生产和制作过程工序复杂,伴随着人力成本的上升,传统茶厂的运营及管理方式不仅效率低下,而且智能化水平不高,仍然存在制作环......