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

news2024/9/17 7:37:35

数据可视化是数据科学和分析中的重要工具,它通过图形表示数据,使得复杂的数据变得易于理解和分析。在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则在简洁和统计图形方面提供了优势。选择使用哪个库,取决于需求和数据类型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1959166.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入浅出消息队列----【阶段总结篇】

深入浅出消息队列----【阶段总结篇】 总览nameSrvBrokerproducer(生产者)consumer(消费者) 串联起来 本文仅是文章笔记,整理了原文章中重要的知识点、记录了个人的看法 文章来源:编程导航-鱼皮【yes哥深入浅…

小间距 LED 显示屏:引领显示技术新潮流

在现代显示技术领域,小间距LED显示屏以其先进的像素点控技术和卓越的显示效果,正逐渐成为市场的新宠。在此为您详细解析小间距LED显示屏相较于传统DLP背投显示屏的优势所在。 1、显示像素的完整性更高 在室内中高端显示市场中,DLP背投显示曾占…

PHP西陆招聘求职系统小程序源码

🔥【职场新宠】西陆招聘求职系统,你的职场加速器🚀 🎉【开篇安利:一站式求职新体验】🎉 还在为找工作焦头烂额吗?是时候告别传统招聘网站的繁琐与低效了!今天给大家种草一个超赞的…

1480. 找字典码最小的字符串

问题描述 编写程序,针对输入的 N 个不同的字符串,输出其中字典码最小的字符串。 输入 输入第一行给出正整数 N ; 随后 N 行,每行给出一个长度小于 80 的非空字符串,其中不会出现换行符,空格&#xff0c…

用Python打造精彩动画与视频.2.1 Python基础语法概述

2.1 Python基础语法概述 Python作为一门功能强大且易于学习的编程语言,其基础语法简单直观,非常适合初学者入门。这一节将带你了解Python的基本语法规则,为后续制作动画和视频打下坚实的基础。 1. 变量与数据类型 Python的变量不需要提前声…

【初阶数据结构篇】实现链式结构二叉树(二叉链)下篇

文章目录 实现链式结构二叉树(二叉链)下篇前言二叉树实现方法二叉树查找值为x的结点二叉树的销毁二叉树的层序遍历判断是否为完全二叉树 二叉树性质选择题二叉树遍历选择题 实现链式结构二叉树(二叉链)下篇 前言 接上一篇 实现链…

一文弄懂北斗RTK差分​高精度定位技术原理

北斗RTK差分定位技术是一种高精度定位技术,它的原理基于北斗卫星导航系统。北斗RTK差分定位技术需要三个接收器:基站接收器、移动接收器和校正接收器。基站接收器从北斗导航卫星系统接收信号,并将这些信号传输到校正接收器。移动接收器接收来…

【AI大模型】-- 应用部署

一、GPU价格参考 有些在京东就能买到:https://item.jd.com/10065826100148.html美国商务部限制 GPU 对华出口的算力不超过 4800 TOPS 和带宽不超过 600 GB/s,导致最强的 H100 和 A100 禁售。英伟达随后推出针对中国市场的 A800 和 H800。 H100 与 A100&…

打造重庆市数字化教育“新名片”,广阳湾珊瑚中学凭实力“出圈”!

分布于教学楼连廊顶部的智能照明设备,根据不同的时间和场景需求自动调节灯光亮度和开关状态;安装于各个教室内的智能黑板、学校同步时钟、学生互动设备,在极简以太全光网的赋能下,为师生提供丰富的教学体验与学习支持......行走于重庆市广阳湾珊瑚中学,像是与充满科技感的“校园…

开源数据结构存储系统Redis的内部数据结构详解(下)

目录 1、整数集合 1.1、整数集合的定义 1.2、升级 1.3、降级 2、压缩列表 2.1、压缩列表定义 2.2、压缩列表节点 2.3、压缩列表对象 3、总结 C++软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/de…

【大数据】虚拟机前置准备

前言: 我们了解了大数据Hadoop是分布式体系。 所以, 为了能确保正常部署好大数据的集群,我们需要做好提前的准备: 准备多台Linux虚拟机 准备基础的Linux操作环境(SSH免密、防火墙、JDK等) 配置多台Linux…

testRigor-基于人工智能驱动的无代码自动化测试平台

1、testRigor介绍 简单来说,testRigor是一款基于人工智能驱动的无代码自动化测试平台,它能够通过分析应用的行为模式,智能地生成测试用例,并自动执行这些测试,无需人工编写测试脚本。可以用于Web、移动、API和本机桌面…

MongoDB 基础知识

一、为什么学习MongoDB MongoDB解决Mysql 的“三高”问题: 1.对数据库高并发写入需求 2.对海量数据高效率存储访问需求 3.对数据库高扩展和高可用的需求 MongoDB 实际应用: 1.社交场景,比如朋友圈,附近的人的地点的存储 2.…

常用七大公司加密软件排行榜|2024年好用高效加密软件最新推荐

加密软件对于保护公司数据和确保信息安全至关重要。本文分享七款公司加密软件,每款软件的功能和优势都有所不同,可以根据企业的具体需求选择合适的解决方案。 1. 固信软件 功能: 固信软件提供全面的数据保护解决方案,透明加密、智…

Java开发者LLM实战——使用LangChain4j构建本地RAG系统

1、引言 由于目前比较火的chatGPT是预训练模型,而训练一个大模型是需要较长时间(参数越多学习时间越长,保守估计一般是几个月,不差钱的可以多用点GPU缩短这个时间),这就导致了它所学习的知识不会是最新的&…

Stable Diffusion参数 - 步数、采样方法、提示词引导系数

1 迭代步数 一张图片的生成它需要多次迭代才能达到我们想要的一个效果。 理论上迭代步数越高,那生成的最终的这个图片的效果就越好,它质量更高。 实际在应用的时候迭代步数达到20以上,它的效果在提升的就不是十分明显了,而更多的…

基于python的百度迁徙迁入、迁出数据分析(三)

百度迁徙定义 百度迁徙释义: 百度迁徙以用户常住地所在地市或停留超过一天的非常住地定义为出发城市,以用户离开出发城市,并在非出发城市停留超过4 h以上定义为到达城市。采用4h阈值,排除了城际出行中的途经地。 定义参考来源…

当年很流行,现在已经淘汰的Java技术,请不要学了!【建议收藏】

在Java技术的发展历程中,确实有一些曾经流行但现在已经被淘汰或不再推荐使用的技术。了解这些技术可以帮助你避免学习过时的知识,从而更高效地提升自己的技能。 以下是一些曾经流行但现在已经不太推荐学习的Java技术: 1. Servlet 2.x&#x…

日程管理多源归一,服务场景一键直达

时间对于每个人来说都是非常宝贵的,曾经我们使用台历、挂历来标记和查看重要日程,通过翻页来见证时光的流逝,随着信息化时代的不断发展,更加灵活简洁的电子日历成为主流,日历也从一个最简单的日期看板,慢慢…

RuntimeError: No CUDA GPUs are available

RuntimeError: No CUDA GPUs are available 目录 RuntimeError: No CUDA GPUs are available 【常见模块错误】 【解决方案】 解决步骤如下: 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科…