Python数据分析:数据可视化(Matplotlib、Seaborn)

简介: 数据可视化是数据分析中不可或缺的一部分,通过将数据以图形的方式展示出来,可以更直观地理解数据的分布和趋势。在Python中,Matplotlib和Seaborn是两个非常流行和强大的数据可视化库。本文将详细介绍这两个库的使用方法,并附上一个综合详细的例子。

数据可视化是数据分析中不可或缺的一部分,通过将数据以图形的方式展示出来,可以更直观地理解数据的分布和趋势。在Python中,Matplotlib和Seaborn是两个非常流行和强大的数据可视化库。本文将详细介绍这两个库的使用方法,并附上一个综合详细的例子。

一、Matplotlib

Matplotlib是Python中最基础也是最强大的数据可视化库之一。它提供了一整套绘图工具,可以创建各种类型的图表,如折线图、柱状图、散点图、饼图等。

1.1 Matplotlib基础

基本使用

Matplotlib的基本使用非常简单,只需要导入matplotlib.pyplot模块,然后使用其各种绘图函数即可。

import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 绘制折线图
plt.plot(x, y)
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.title('简单折线图')
plt.show()

设置图形属性

我们可以通过设置各种属性来定制图形的外观。

# 设置线条属性
plt.plot(x, y, color='green', marker='o', linestyle='dashed', linewidth=2, markersize=12)
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.title('设置线条属性的折线图')
plt.show()

多图绘制

使用subplot函数可以在同一个窗口中绘制多个图形。

# 创建数据
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 11]
y2 = [1, 4, 9, 16, 25]
# 创建子图
plt.subplot(2, 1, 1)
plt.plot(x, y1, 'r--')
plt.title('第一个子图')
plt.subplot(2, 1, 2)
plt.plot(x, y2, 'g*-')
plt.title('第二个子图')
plt.show()

1.2 Matplotlib高级

图例和标签

我们可以为图形添加图例和标签,以便更好地解释图表内容。

# 创建数据
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 11]
y2 = [1, 4, 9, 16, 25]
# 绘制折线图
plt.plot(x, y1, label='质数')
plt.plot(x, y2, label='平方数')
# 添加图例和标签
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.title('添加图例和标签的折线图')
plt.legend()
plt.show()

注释和文本

可以在图表中添加注释和文本,以便更详细地解释图表中的数据点。

# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 绘制折线图
plt.plot(x, y)
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.title('添加注释的折线图')
# 添加注释
plt.annotate('最高点', xy=(5, 11), xytext=(4, 9),
             arrowprops=dict(facecolor='black', shrink=0.05))
plt.show()

图表样式

Matplotlib提供了许多内置的样式,可以轻松更改图表的整体外观。

# 使用内置样式
plt.style.use('ggplot')
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 绘制折线图
plt.plot(x, y)
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.title('使用ggplot样式的折线图')
plt.show()

二、Seaborn

Seaborn是基于Matplotlib构建的高级数据可视化库,提供了更简洁的API和更美观的默认样式,特别适合用于统计数据的可视化。

2.1 Seaborn基础

安装和导入

安装Seaborn非常简单,可以使用pip命令:

pip install seaborn

导入Seaborn也非常简单:

import seaborn as sns
import matplotlib.pyplot as plt

基本使用

Seaborn的基本使用方法与Matplotlib类似,但提供了更简洁的接口和更美观的默认样式。

# 导入数据集
tips = sns.load_dataset('tips')
# 绘制散点图
sns.scatterplot(x='total_bill', y='tip', data=tips)
plt.xlabel('总账单')
plt.ylabel('小费')
plt.title('总账单与小费的关系')
plt.show()

绘制不同类型的图表

Seaborn提供了许多用于绘制不同类型图表的函数,如箱线图、柱状图、热力图等。

# 箱线图
sns.boxplot(x='day', y='total_bill', data=tips)
plt.xlabel('星期几')
plt.ylabel('总账单')
plt.title('不同星期几的总账单分布')
plt.show()
# 热力图
flights = sns.load_dataset('flights')
flights_pivot = flights.pivot('month', 'year', 'passengers')
sns.heatmap(flights_pivot, annot=True, fmt='d', cmap='YlGnBu')
plt.xlabel('年份')
plt.ylabel('月份')
plt.title('不同年份和月份的乘客数量')
plt.show()

2.2 Seaborn高级

调整图表样式

Seaborn提供了一些函数可以调整图表的样式。

# 设置图表样式
sns.set_style('whitegrid')
# 绘制散点图
sns.scatterplot(x='total_bill', y='tip', data=tips)
plt.xlabel('总账单')
plt.ylabel('小费')
plt.title('总账单与小费的关系')
plt.show()

多图绘制

使用FacetGrid可以在同一个窗口中绘制多个图形,方便进行对比分析。

# 使用FacetGrid绘制多个图形
g = sns.FacetGrid(tips, col='time')
g.map(sns.scatterplot, 'total_bill', 'tip')
plt.show()

三、综合实例

下面是一个综合详细的例子,展示如何使用Matplotlib和Seaborn进行数据可视化。

3.1 示例数据集

我们将使用一个模拟的数据集,包含一些产品的销售数据。

import pandas as pd
import numpy as np
# 创建数据集
np.random.seed(0)
dates = pd.date_range('20230101', periods=100)
df = pd.DataFrame({
    'date': dates,
    'product': np.random.choice(['A', 'B', 'C', 'D'], size=100),
    'sales': np.random.randint(50, 200, size=100),
    'profit': np.random.randint(20, 100, size=100)
})

3.2 使用Matplotlib进行数据可视化

销售趋势折线图

我们首先使用Matplotlib绘制产品销售趋势的折线图。

import matplotlib.pyplot as plt
# 按日期汇总销售数据
sales_trend = df.groupby('date')['sales'].sum()
# 绘制折线图
plt.figure(figsize=(10, 6))
plt.plot(sales_trend.index, sales_trend.values)
plt.xlabel('日期')
plt.ylabel('销售额')
plt.title('销售趋势折线图')
plt.show()

1723538715945.jpg

各产品销售额柱状图

接下来,我们绘制各产品销售额的柱状图。

# 按产品汇总销售数据
product_sales = df.groupby('product')['sales'].sum()
# 绘制柱状图
plt.figure(figsize=(8, 6))
plt.bar(product_sales.index, product_sales.values, color=['red', 'blue', 'green', 'purple'])
plt.xlabel('产品')
plt.ylabel('销售额')
plt.title('各产品销售额柱状图')
plt.show()

1723538734278.jpg

3.3 使用Seaborn进行数据可视化

销售和利润的散点图

我们使用Seaborn绘制销售和利润的散点图。

import seaborn as sns
# 绘制散点图
plt.figure(figsize=(10, 6))
sns.scatterplot(x='sales', y='profit', hue='product', data=df)
plt.xlabel('销售额')
plt.ylabel('利润')
plt.title('销售额与利润的关系')
plt.show()

1723538764034.jpg

产品销售分布箱线图

我们使用Seaborn绘制各产品销售分布的箱线图。

# 绘制箱线图
plt.figure(figsize=(10, 6))
sns.boxplot(x='product', y='sales', data=df)
plt.xlabel('产品')
plt.ylabel('销售额')
plt.title('各产品销售分布箱线图')
plt.show()

1723538795965.jpg

3.4 综合实例的输出结果

通过运行上述代码,我们可以得到一系列图表,这些图表直观地展示了销售数据的分布和趋势。

  1. 销售趋势折线图:展示了整个时间段内的销售趋势,帮助我们识别出销售高峰和低谷。
  2. 各产品销售额柱状图:展示了不同产品的销售额对比,帮助我们确定哪些产品最受欢迎。
  3. 销售额与利润的散点图:展示了销售额和利润之间的关系,帮助我们分析销售和利润的相关性。
  4. 各产品销售分布箱线图:展示了不同产品的销售分布情况,帮助我们识别出销售额的集中区域和异常值。

通过这些图表,我们可以更好地理解和解释数据,从而做出更明智的决策。

四、总结

本文详细介绍了Python中两个主要的数据可视化库——Matplotlib和Seaborn的使用方法,并通过一个综合实例展示了如何使用这两个库进行数据可视化。Matplotlib提供了强大的绘图功能和高度的定制性,而Seaborn则提供了更简洁的接口和更美观的默认样式。根据不同的需求,我们可以选择合适的库进行数据可视化,从而更好地理解和解释数据。


作者:Rjdeng

链接:https://juejin.cn/post/7399985797540069386

相关文章
|
4天前
|
数据采集 Web App开发 自然语言处理
新闻热点一目了然:Python爬虫数据可视化
新闻热点一目了然:Python爬虫数据可视化
|
27天前
|
机器学习/深度学习 数据可视化 搜索推荐
基于python的汽车数据可视化、推荐及预测系统
本研究围绕汽车数据可视化、推荐及预测系统展开,结合大数据与人工智能技术,旨在提升用户体验与市场竞争力。内容涵盖研究背景、意义、相关技术如 Python、ECharts、协同过滤及随机森林回归等,探讨如何挖掘汽车数据价值,实现个性化推荐与智能预测,为汽车行业智能化发展提供支持。
|
3月前
|
数据采集 数据可视化 搜索推荐
Python数据分析全流程指南:从数据采集到可视化呈现的实战解析
在数字化转型中,数据分析成为企业决策核心,而Python凭借其强大生态和简洁语法成为首选工具。本文通过实战案例详解数据分析全流程,涵盖数据采集、清洗、探索、建模、可视化及自动化部署,帮助读者掌握从数据到业务价值的完整技能链。
383 0
|
16天前
|
数据采集 数据可视化 关系型数据库
基于python大数据的电影数据可视化分析系统
电影分析与可视化平台顺应电影产业数字化趋势,整合大数据处理、人工智能与Web技术,实现电影数据的采集、分析与可视化展示。平台支持票房、评分、观众行为等多维度分析,助力行业洞察与决策,同时提供互动界面,增强观众对电影文化的理解。技术上依托Python、MySQL、Flask、HTML等构建,融合数据采集与AI分析,提升电影行业的数据应用能力。
|
1月前
|
数据采集 搜索推荐 数据可视化
基于python大数据的商品数据可视化及推荐系统
本系统基于Python、Django与ECharts,构建大数据商品可视化及推荐平台。通过爬虫获取商品数据,利用可视化技术呈现销售趋势与用户行为,结合机器学习实现个性化推荐,助力电商精准营销与用户体验提升。
|
25天前
|
数据可视化 大数据 数据挖掘
基于python大数据的招聘数据可视化分析系统
本系统基于Python开发,整合多渠道招聘数据,利用数据分析与可视化技术,助力企业高效决策。核心功能包括数据采集、智能分析、可视化展示及权限管理,提升招聘效率与人才管理水平,推动人力资源管理数字化转型。
|
2月前
|
搜索推荐 算法 数据可视化
基于python大数据的招聘数据可视化及推荐系统
本研究聚焦于基于协同过滤的就业推荐系统设计与实现。随着就业压力增大和信息技术发展,传统求职方式面临挑战。通过分析用户行为与职位特征,协同过滤技术可实现个性化职位推荐,提升求职与招聘效率。研究涵盖系统架构、数据采集、算法实现及可视化展示,旨在优化就业匹配,促进人才与岗位精准对接,助力就业市场智能化发展。
|
4月前
|
数据可视化 算法 数据挖掘
Python 3D数据可视化:7个实用案例助你快速上手
本文介绍了基于 Python Matplotlib 库的七种三维数据可视化技术,涵盖线性绘图、散点图、曲面图、线框图、等高线图、三角剖分及莫比乌斯带建模。通过具体代码示例和输出结果,展示了如何配置三维投影环境并实现复杂数据的空间表示。这些方法广泛应用于科学计算、数据分析与工程领域,帮助揭示多维数据中的空间关系与规律,为深入分析提供技术支持。
121 0
Python 3D数据可视化:7个实用案例助你快速上手
|
5月前
|
人工智能 数据可视化 数据挖掘
如何使用Python进行数据可视化
Python是一种强大的编程语言,广泛应用于数据分析与可视化。常见的可视化库有Matplotlib、Seaborn和Plotly等。数据可视化通常包括以下步骤:准备数据(如列表或从文件读取)、选择合适的工具、绘制图表、优化样式(如标题和标签)以及保存或分享结果。例如,使用Matplotlib可通过简单代码绘制线图并添加标题和轴标签。实际应用中,可通过调整颜色、样式等进一步优化图表,甚至使用交互式工具提升效果。总之,Python的丰富工具为数据可视化提供了强大支持。
169 5
|
5月前
|
机器学习/深度学习 数据采集 数据可视化
Python数据分析,别再死磕Excel了!
Python数据分析,别再死磕Excel了!
192 2

推荐镜像

更多