当前位置: 首页 > news >正文

数据可视化艺术:Matplotlib与Seaborn实战

目录

1.Matplotlib基础绘图与定制化

1.1. 基础绘图

1.2. 定制化

2.Seaborn高级图表类型与样式设定

2.1. 高级图表类型

 2.2. 样式设定

3.实战:绘制多维度数据可视化报告

4.总结


1. 前言

        在数据科学领域,数据可视化扮演着至关重要的角色。通过图形化的展示,我们可以更直观地理解数据的分布、趋势以及不同变量之间的关系。Matplotlib和Seaborn是两个在Python中非常流行的数据可视化库,前者提供了基础的绘图功能,后者则提供了更高级的图表类型和样式设定。接下来,我们将通过实战的方式,探索这两个库在数据可视化中的应用。 更多Python在人工智能中的应用案例,欢迎关注《Python人工智能实战》栏目!

2.Matplotlib基础绘图与定制化

2.1. 基础绘图

        Matplotlib是Python中最为基础且功能强大的数据可视化库之一。它可以绘制各种类型的图表,如折线图、散点图、柱状图等,并且允许用户进行高度定制。

        以下是一些基本图表的创建示例:

import matplotlib.pyplot as plt
import numpy as np# 创建数据
x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)# 绘制折线图
plt.plot(x, y, label='Sine Function')
plt.xlabel('Angle (radians)')
plt.ylabel('sin(x)')
plt.legend()
plt.show()  # 显示图形# 绘制散点图
plt.scatter(x, np.cos(x), label='Cosine Function')
plt.xlabel('Angle (radians)')
plt.ylabel('cos(x)')
plt.legend()
plt.show()# 绘制直方图
data = np.random.normal(loc=0, scale=1, size=1000)
plt.hist(data, bins=30, density=True, alpha=0.5, label='Normal Distribution')
plt.xlabel('Value')
plt.ylabel('Density')
plt.legend()
plt.show()
本例中折线图效果
本例中散点图效果
本例中直方图效果

 2.2. 定制化

        Matplotlib允许对图表的各个元素进行精细定制,包括颜色、线条样式、字体、坐标轴、图例、网格等。以下是对折线图进行定制的例子:

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)# 自定义颜色、线宽、线型
plt.plot(x, y, color='crimson', linewidth=2.5, linestyle='--')# 设置坐标轴范围、刻度
plt.xlim([0, 2*np.pi])
# 使用LaTeX格式显示π
plt.xticks((-np.pi, -np.pi/2, np.pi/2, np.pi),(r'$\pi$', r'$-\frac{\pi}{2}$', r'$\frac{\pi}{2}$', r'$\pi$'))
# 添加图例、标题、网格
plt.legend(['Sine Function'])
plt.title('Customized Sine Plot')
plt.grid(True, linestyle='dashed', alpha=0.9)# 修改字体、背景色
plt.rcParams['font.family'] = 'Arial'
plt.rcParams['axes.facecolor'] = 'lightgoldenrodyellow'plt.show()
定制化效果

3.Seaborn高级图表类型与样式设定

        Seaborn是基于Matplotlib的高级统计图形库,提供更高级别的接口和更美观的默认样式。它特别擅长展示多变量数据的复杂关系。

3.1. 高级图表类型

  • 线性回归图:展示两个连续变量之间的线性关系及其置信区间。
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pdtips = sns.load_dataset("tips")sns.lmplot(x="total_bill", y="tip", data=tips, hue="day", palette="muted")
plt.show()
线性回归图

  • 热力图:展示数据的二维矩阵,用颜色强度表示数值大小。
import seaborn as sns
import pandas as pd
from matplotlib import pyplot as plt
tips = sns.load_dataset("tips")
# pandas2.0版本后,原来corr函数自动忽略字符串等非浮点数的特性被修改。现在需要加上numeric_only=True才会忽略字符串。
corr = tips.corr(numeric_only=True)
sns.heatmap(corr, annot=True, cmap='coolwarm')
plt.show()
热力图

 3.2. 样式设定

        Seaborn提供多种内置样式,可以通过set_theme()函数全局设置:

import seaborn as sns
# style 包括:darkgrid、whitegrid、dark、white
sns.set_theme(style="darkgrid")  # 设置为深色网格样式# 继续绘制图表...

        也可以针对特定图表进行单独样式调整,如更改颜色映射、设置透明度等。

4.实战:绘制多维度数据可视化报告

        以鸢尾花(Iris)数据集为例,我们使用Matplotlib与Seaborn联合创建一份包含多种图表的可视化报告:

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
from sklearn.datasets import load_iris
import numpy as np
iris = load_iris()
df = pd.DataFrame(data=np.c_[iris['data'], iris['target']],columns=iris['feature_names'] + ['species'])
print(df.columns)
# 分析不同物种花瓣长度与宽度的关系
sns.lmplot(x='sepal length (cm)', y='petal width (cm)', data=df, hue='species', col='species', ci=None)plt.suptitle('Petal Length vs Width by Species')# 展示所有特征间的相关性
corr = df.corr()
sns.heatmap(corr, annot=True, cmap='coolwarm', linewidths=.5)
plt.title('Feature Correlation Matrix')# 绘制箱线图对比各物种的萼片长度
sns.boxplot(x='species', y='sepal length (cm)', data=df, palette='Set2')
plt.title('Sepal Length Distribution Across Species')plt.show()

        

多维度数据可视化报告

        这份报告包含了线性回归图、热力图以及箱线图,分别展示了鸢尾花不同物种间花瓣长度与宽度的关系、所有特征的相关性,以及萼片长度在不同物种间的分布情况。通过这样的多维度可视化,我们可以直观地洞察数据内在结构与关联,为后续数据分析提供有力支持。

5.总结

        以上就是利用Matplotlib与Seaborn进行数据可视化的基础操作与实战应用,熟练掌握这些技巧将极大地提升数据洞察力和沟通效率。 更多Python在人工智能中的使用方法,欢迎关注《Python人工智能实战》栏目!

相关文章:

数据可视化艺术:Matplotlib与Seaborn实战

目录 1.Matplotlib基础绘图与定制化 1.1. 基础绘图 1.2. 定制化 2.Seaborn高级图表类型与样式设定 2.1. 高级图表类型 2.2. 样式设定 3.实战:绘制多维度数据可视化报告 4.总结 1. 前言 在数据科学领域,数据可视化扮演着至关重要的角色。通过图形化…...

python初级第一次作业

一、 dayint(input("enter today day")) fdayint(input("enter num of day since today")) c((fday%7)day)%7 if c0:print("sunday") elif c1:print("monday") elif c2:print("tuesday") elif c3:print("wendnsday&quo…...

Spring Boot整合Camunda打造高效工作流程

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是尘缘,一个在CSDN分享笔记的博主。📚📚 👉点击这里,就可以查看我的主页啦!👇&#x…...

2.8、下拉刷新与上拉加载

页面的下拉刷新与上拉加载功能在移动应用中十分常见,例如,新闻页面的内容刷新和加载。这两种操作的原理都是通过响应用户的触摸事件,在顶部或者底部显示一个刷新或加载视图,完成后再将此视图隐藏。 实现思路 以下拉刷新为例,其实现主要分成三步: 监听手指按下事件,记录…...

java Web餐馆订单管理系统用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP 餐馆订单管理系统是一套完善的web设计系统,对理解JSP java 编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0,使…...

小程序从入门到入坑:事件系统

前言 哈喽大家好,我是 SuperYing,本文是小程序从入门到入坑系列的第 3 篇,将比较详尽的讲解 小程序事件系统 的相关知识点,欢迎小伙伴阅读。 读完本文您将收获: 了解小程序事件及基础使用。了解小程序事件分类及多种的…...

Windows蓝牙驱动开发之模拟HID设备(二)(把Windows电脑模拟成蓝牙鼠标和蓝牙键盘等设备)

by fanxiushu 2024-03-24 转载或引用请注明原作者 接上文,当我们建立了蓝牙链接请求之后,就该传输数据了, 其实传输数据比起上章阐述的创建SDP和建立连接要简单许多。 使用类型 BRB_L2CA_ACL_TRANSFER 的BRB请求,就可以实现接收和发送操作, 至于具体是接收还是发送,根据设…...

快速区分清楚图形渲染中的AABB,KD树和BVH这些概念

快速区分清楚图形渲染中的AABB,KD树和BVH这些概念 主要想形象去区分好这些术语,目的是扫盲,先开好坑,内容持续填充。 0.先摆出这些词的全称 AABB: 原名:axis aligned bounding box;中文直译名…...

Rust 的 HashMap 特定键值元素值的累加方法

在Rust中,如果你想要对HashMap中特定键对应的值进行累加操作,你需要首先检查该键是否已存在。如果存在,则取出其值,进行累加,然后将结果存回HashMap。如果不存在,则可能需要插入一个新的键值对,…...

Java后端项目性能优化实战-群发通知

背景 公司群发通知模块性能存在问题,我进行全面的系统调优,系统处理能力大幅提升。 原发送流程 优化后的发送流程 优化的点 说明:以下问题基本都是压测过程遇到的,有些问题普通的功能测试暴露不了。优化目标:保证高…...

5、Jenkins持续集成-Maven和Tomcat的安装与配置

文章目录 一、Maven的安装与配置1、安装maven并配置环境2、全局工具配置关联jdk和maven3、添加Jenkins全局变量4、修改settings.xml文件5、测试是否配置成功二、Tomcat的安装与配置1、安装tomcat8+2、配置Tomcat用户角色权限3、测试是否配置成功一、Maven的安装与配置 在Jenki…...

Qt教程 — 3.7 深入了解Qt 控件: Layouts部件

目录 2 如何使用Layouts部件 2.1 QBoxLayout组件-垂直或水平布局 2.2 QGridLayout组件-网格布局 2.3 QFormLayout组件-表单布局 在Qt中,布局管理器(Layouts)是用来管理窗口中控件位置和大小的重要工具。布局管理器可以确保窗口中的控件在…...

自动驾驶的几种名词

1. 自适应巡航控制(ACC) 自适应巡航控制(Adaptive Cruise Control,ACC)是一种汽车驾驶辅助系统,它可以根据前方车辆的速度和距离自动调整车辆的速度,以保持与前车的安全距离。ACC系统由控制层和…...

华为全套企业管理资料合集(21专题)

华为全套企业管理资料合集-知识星球下载 1.绩效考核 华为内训绝密资料:绩效管理与绩效考核.ppt 华为绩效管理与绩效考核制度.docx 华为公司实用性各种绩效图表汇总.doc 华为公司考勤管理制度.doc 华为IPD模式中跨部门团队成员的考核激励制度.doc 2.企业管理 华为公司人力资源…...

LeetCode Python - 74. 搜索二维矩阵

目录 题目描述解法方法一:二分查找方法二:从左下角或右上角搜索 运行结果方法一方法二 题目描述 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给…...

如何安全地添加液氮到液氮罐中

液氮是一种极低温的液体,它在许多领域广泛应用,但在处理液氮时需谨慎小心。添加液氮到液氮罐中是一个常见的操作,需要遵循一些安全准则以确保操作人员的安全和设备的完整性。 选择合适的液氮容器 选用专业设计用于存储液氮的容器至关重要。…...

LGBM算法 原理

简介 GBDT (Gradient Boosting Decision Tree) 是机器学习中一个长盛不衰的模型,其主要思想是利用弱分类器(决策树)迭代训练以得到最优模型,该模型具有训练效果好、不易过拟合等优点。GBDT不仅在工业界应用广泛,通常被…...

【WPF应用5】WPF中的TextBlock控件:属性与事件详解及示例

在WPF(Windows Presentation Foundation)开发中,TextBlock控件是一个常用的元素,用于显示静态或动态文本内容。它提供了丰富的属性和事件,使得开发者能够灵活地控制文本的显示样式和响应用户的交互行为。本文将详细介绍…...

【C语言基础】:内存操作函数

文章目录 一、memcpy函数的使用和模拟实现1.1 memcpy函数的使用1.2 memcpy函数的模拟实现 二、memmove函数的使用和模拟实现2.1 memmove函数的使用2.2 memmove函数的模拟实现 三、memset函数的使用3.1 menset函数的使用 四、memcmp函数的使用4.1 memcmp函数的使用 学海无涯苦作…...

3.24作业

基于UDP的网络聊天室 项目需求: 如果有用户登录,其他用户可以收到这个人的登录信息如果有人发送信息,其他用户可以收到这个人的群聊信息如果有人下线,其他用户可以收到这个人的下线信息服务器可以发送系统信息 服务器端代码 #in…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...