首页 > 编程语言 >Python 进行数据可视化(Matplotlib, Seaborn)

Python 进行数据可视化(Matplotlib, Seaborn)

时间:2024-08-02 09:59:25浏览次数:19  
标签:plt Seaborn Python Matplotlib sns 图形 data

数据可视化是数据科学和分析中的重要工具,它通过图形表示数据,使得复杂的数据变得易于理解和分析。在Python中,最常用的两个数据可视化库是Matplotlib和Seaborn。

Matplotlib

1. 简介

Matplotlib是一个用于生成二维图形的Python库。它提供了类似于Matlab的绘图接口,使用户能够轻松创建各种类型的图表,如折线图、柱状图、散点图等。

2. 基本用法

使用Matplotlib通常从导入pyplot模块开始,该模块包含了所有绘图函数。

import matplotlib.pyplot as plt
2.1. 创建简单的图表

以下是一个简单的折线图示例:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [1, 4, 9, 16]

plt.plot(x, y)
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.title('简单的折线图')
plt.show()

在这个例子中,plot()函数用于绘制折线图,xlabel()ylabel()title()分别用于设置x轴、y轴标签和图表标题。show()函数用来显示图表。

2.2. 图形类型

Matplotlib支持多种图形类型,包括:

  • 折线图 (plot()): 用于显示数据的变化趋势。
  • 柱状图 (bar()): 用于比较不同类别的数据。
  • 直方图 (hist()): 用于显示数据的分布。
  • 散点图 (scatter()): 用于显示数据点之间的关系。

示例:

# 柱状图
categories = ['A', 'B', 'C', 'D']
values = [3, 7, 8, 5]
plt.bar(categories, values)
plt.show()
2.3. 自定义图表

Matplotlib允许高度定制图表的外观,如颜色、线条样式、标记等。

plt.plot(x, y, color='green', linestyle='--', marker='o')
  • color设置线条颜色
  • linestyle设置线条样式,如虚线('--')、实线('-')等
  • marker设置数据点的标记样式,如圆圈('o')、星号('*')等
2.4. 多个子图

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

plt.subplot(1, 2, 1)  # (行, 列, 当前子图索引)
plt.plot(x, y)
plt.subplot(1, 2, 2)
plt.bar(categories, values)
plt.show()

3. 高级功能

Matplotlib还支持更多高级功能,如绘制三维图形、动画和交互式绘图。

3.1. 三维绘图
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot(x, y, zs=0, zdir='z', label='zs=0, zdir=z')
3.2. 动画
from matplotlib.animation import FuncAnimation

def update(frame):
    # 更新图像内容
    line.set_ydata(np.sin(x + frame / 10.0))
    return line,

fig, ax = plt.subplots()
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
line, = ax.plot(x, y)
ani = FuncAnimation(fig, update, frames=range(100), blit=True)

Seaborn

1. 简介

Seaborn是基于Matplotlib的高级绘图库,提供了更加简洁和高级的接口,尤其擅长统计图形的展示。Seaborn使得复杂的数据可视化更加容易,并具有更加美观的默认设置。

2. 基本用法

Seaborn的图形接口通常使用DataFrame结构的数据。以下是一个简单的示例:

import seaborn as sns
import pandas as pd

# 创建一个简单的数据集
data = pd.DataFrame({
    'X轴': [1, 2, 3, 4],
    'Y轴': [10, 20, 30, 40]
})

sns.lineplot(data=data, x='X轴', y='Y轴')
2.1. 图形类型

Seaborn提供了多种统计图形类型,包括:

  • 散点图 (scatterplot()): 用于展示两个变量之间的关系。
  • 线性回归图 (regplot()): 散点图结合回归线。
  • 箱线图 (boxplot()): 显示数据分布及其异常值。
  • 小提琴图 (violinplot()): 类似箱线图,但还显示了数据的核密度估计。
  • 热图 (heatmap()): 用于显示矩阵数据的热力密度。

示例:

# 散点图
sns.scatterplot(x='X轴', y='Y轴', data=data)
plt.show()

# 箱线图
sns.boxplot(x='类别', y='值', data=data)
2.2. 统计绘图

Seaborn简化了复杂的统计绘图,如配对图和联合分布图:

  • 配对图 (pairplot()): 显示数据集中所有变量的成对关系。
  • 联合分布图 (jointplot()): 显示两个变量的联合分布和边际分布。
# 配对图
sns.pairplot(data)

# 联合分布图
sns.jointplot(x='X轴', y='Y轴', data=data)
2.3. 分类数据可视化

Seaborn特别擅长可视化分类数据,通过颜色、标记样式等区分不同类别。

sns.barplot(x='类别', y='值', hue='子类别', data=data)

3. 自定义和样式

Seaborn提供了多种自定义选项和内置样式主题,使得用户可以轻松调整图表外观。

3.1. 主题和调色板
sns.set_theme(style="darkgrid")
sns.set_palette("pastel")
  • set_theme()可以设置主题风格,如白色网格、暗色网格等。
  • set_palette()用于设置调色板,如深色、浅色、明亮等。
3.2. 自定义图形元素

Seaborn中的很多函数都允许自定义各类图形元素,如图例、轴标签、标题等。

sns.lineplot(x='X轴', y='Y轴', data=data)
plt.title('自定义标题')
plt.xlabel('自定义X轴标签')
plt.ylabel('自定义Y轴标签')

4. 与Matplotlib的集成

Seaborn的图表是基于Matplotlib的,因此它们完全兼容。您可以使用Matplotlib的函数进一步调整Seaborn图表的细节。

sns.lineplot(x='X轴', y='Y轴', data=data)
plt.plot([1, 2, 3, 4], [2, 3, 5, 7], linestyle='--', color='red')

Matplotlib和Seaborn是Python中非常强大的数据可视化库。Matplotlib提供了详细而灵活的绘图控制,而Seaborn则在简洁和统计图形方面提供了优势。选择使用哪个库,取决于需求和数据类型。

标签:plt,Seaborn,Python,Matplotlib,sns,图形,data
From: https://blog.csdn.net/Itmastergo/article/details/140789906

相关文章

  • Python 学习中的 API,如何调用API ?
    1.1API的定义API,全称是ApplicationProgrammingInterface(应用程序编程接口)。它是一组定义好的协议和工具,用于在软件应用程序之间进行通信。API可以简化软件开发,使不同的应用程序能够相互协作。它是软件开发中非常关键的组成部分,因为它提供了一种标准化的方式来访问某些功能,......
  • 27、Python之面向对象:方生方死?对象生命周期是如何管理的
    引言前面关于面向对象的几篇文章,其实主要围绕着面向对象的第一个核心理念——封装,进行面向对象的介绍。从类、对象的静态构成的角度,对类与对象的定义及使用进行介绍。在进入面向对象另外两个理念的介绍之前,我觉得有必要对Python中对象的生命周期管理进行一些介绍,从而知道我们......
  • Python cv2库 批量压缩图片jpg、png 脚本
    效果图:(1)压缩前:10.9M   (2)压缩后:1.46M(3)直接上代码,#设置压缩质量0-100,0最差,100最好compression_params=[int(cv2.IMWRITE_JPEG_QUALITY),50]importcv2importosPATH=r'F:\aa_jpg'#压缩该路径下的图片,压缩后会保存到原路径defresizeImage(f......
  • 深度学习扫盲——PIL(python图像处理库)
    PIL(PythonImagingLibrary)库,也称为Pillow,是Python中广泛使用的PIL。它提供了丰富的图像处理功能,支持几乎所有图片格式的存储、显示和处理,能够完成图像的缩放、裁剪、叠加以及图像添加线条、图像和文字等操作。以下是对PIL库(Pillow)的详细介绍:一、基本介绍定义:PIL是PythonImagin......
  • Python 下载 html 中的 图片
    安装requests、beautifulsoup4库#安装requests、beautifulsoup4库pipinstallrequestsbeautifulsoup4-ihttps://pypi.tuna.tsinghua.edu.cn/simple完成代码#pipinstallrequestsbeautifulsoup4-ihttps://pypi.tuna.tsinghua.edu.cn/simpleimportosimportr......
  • 比较不同的excel,或者同一个excel的两个不同sheet页,并将不同之处标红,python代码实现
    importopenpyxlfromopenpyxl.stylesimportPatternFill#对比两个sheet,数据一致性校验#获取sheet对象的某一行defgetRow(sheet,rowNo):try:rows=[]forrowinsheet.iter_rows():rows.append(row)returnrows[rowNo-......
  • Python连接MinIO:实现高效的对象存储管理
    文章目录概要环境准备Python连接MinIO注意事项小结概要在云计算和大数据领域,对象存储因其可扩展性、高可用性和成本效益而备受青睐。MinIO是一个高性能的分布式对象存储服务器,它兼容AmazonS3云存储服务API。使用Python连接MinIO,你可以轻松地在你的应用程序中集成对......
  • python中字典的学习
    字典(dict)目录字典(dict)字典的概念字典操作字典的遍历字典的常用方法字典的概念dictionary(字典)是除列表以外python之中最灵活的数据类型字典同样可以用来存储多个数据通常用于存储描述一个物体的相关信息和列表的区别列表是有序的对象集合字典是无序的对象集合......
  • Python连接MinIO进阶教程:文件类型指定、上传与获取预览链接
    文章目录概要1.指定文件内容类型2.获取文件的预览链接(PresignedURL)使用fput_object上传文件4.完整示例与总结概要在上一篇文章中,我们介绍了如何使用Python连接MinIO服务器,并进行了基本的文件上传和下载操作。这次,我们将深入探讨一些进阶功能,包括在上传文件时指......
  • Python装饰器
    Python装饰器TableofContents引子函数式调用语法糖加上参数login函数有参数装饰器本身有参数装饰有返回值的函数多个装饰器灵活运用想理解Python的装饰器,首先要知道在Python中函数也是一个对象,所以可以:将函数赋值给变量将函数当做参数返回一个函数......