Python面试题:使用Matplotlib和Seaborn进行数据可视化

使用Matplotlib和Seaborn进行数据可视化是数据分析中非常重要的一部分。以下示例展示了如何使用这两个库来创建各种图表,包括基本的线图、柱状图、散点图和高级的分类数据可视化图表。

安装 Matplotlib 和 Seaborn

如果你还没有安装这两个库,可以使用以下命令进行安装:

pip install matplotlib seaborn

示例代码

1. 导入库
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
2. 准备数据

我们将使用一个示例数据集。

# 创建示例数据
np.random.seed(0)
data = pd.DataFrame({'A': np.random.normal(0, 1, 100),'B': np.random.normal(5, 2, 100),'C': np.random.normal(-2, 4, 100),'D': np.random.randint(1, 4, 100),'E': np.random.choice(['Group 1', 'Group 2', 'Group 3'], 100)
})
3. Matplotlib 基本图表

线图

plt.figure(figsize=(10, 6))
plt.plot(data['A'], label='Series A')
plt.plot(data['B'], label='Series B')
plt.xlabel('Index')
plt.ylabel('Values')
plt.title('Line Plot')
plt.legend()
plt.show()

柱状图

plt.figure(figsize=(10, 6))
plt.bar(np.arange(len(data['A'])), data['A'], label='Series A')
plt.xlabel('Index')
plt.ylabel('Values')
plt.title('Bar Plot')
plt.legend()
plt.show()

散点图

plt.figure(figsize=(10, 6))
plt.scatter(data['A'], data['B'], c='blue', label='A vs B')
plt.xlabel('Series A')
plt.ylabel('Series B')
plt.title('Scatter Plot')
plt.legend()
plt.show()
4. Seaborn 高级图表

分布图

plt.figure(figsize=(10, 6))
sns.histplot(data['A'], kde=True)
plt.title('Distribution Plot')
plt.show()

箱形图

plt.figure(figsize=(10, 6))
sns.boxplot(x='E', y='A', data=data)
plt.title('Box Plot by Group')
plt.show()

分类散点图(带抖动)

plt.figure(figsize=(10, 6))
sns.stripplot(x='E', y='A', data=data, jitter=True)
plt.title('Strip Plot with Jitter')
plt.show()

热力图

corr = data[['A', 'B', 'C']].corr()
plt.figure(figsize=(8, 6))
sns.heatmap(corr, annot=True, cmap='coolwarm')
plt.title('Heatmap of Correlation Matrix')
plt.show()
5. 综合示例

下面是一个综合示例,展示如何将多个图表放在一个画布上。

fig, axes = plt.subplots(2, 2, figsize=(15, 10))# 线图
axes[0, 0].plot(data['A'], label='Series A')
axes[0, 0].plot(data['B'], label='Series B')
axes[0, 0].set_title('Line Plot')
axes[0, 0].legend()# 散点图
axes[0, 1].scatter(data['A'], data['B'], c='blue', label='A vs B')
axes[0, 1].set_title('Scatter Plot')
axes[0, 1].legend()# 分布图
sns.histplot(data['A'], kde=True, ax=axes[1, 0])
axes[1, 0].set_title('Distribution Plot')# 箱形图
sns.boxplot(x='E', y='A', data=data, ax=axes[1, 1])
axes[1, 1].set_title('Box Plot by Group')plt.tight_layout()
plt.show()

代码解释

  1. 导入库:首先导入Matplotlib和Seaborn库。
  2. 准备数据:使用NumPy和Pandas创建一个示例数据集。
  3. Matplotlib 基本图表:包括线图、柱状图和散点图,展示如何使用Matplotlib进行基本的数据可视化。
  4. Seaborn 高级图表:包括分布图、箱形图、分类散点图和热力图,展示如何使用Seaborn进行高级的数据可视化。
  5. 综合示例:将多个图表放在一个画布上,展示如何创建复杂的可视化布局。

通过这些示例,你可以学习如何使用Matplotlib和Seaborn进行各种类型的数据可视化,实际应用中可以根据具体需求进行扩展和调整。

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

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

相关文章

树 ----- 基础学习

树 树:n(n>0)个结点的有限集合。n 0 ,空树。 在任意一个非空树中, 1,有且仅有一个特定的根结点 2,当n>1 时,其余结点可分为m个互不相交的有限集合T1,T2,T3.。。。。Tm,其中每…

TTS如何正确读AI缩写、金额和数字

案例:Tell me whats AI(a i), you need pay $186.30, your card Number is 1 2 3, your work Number is 5 6 7 8

如何利用业余时间做副业,在家里赚钱,来增加收入

人一生每个阶段都会有压力和烦恼,中年人更是如此。 上有老下有小,生活的重担都在一个人身上,压得人喘不过气,这些都需要钱,仅靠工资已经很难维持一家人的开支了。 所以很多人打算利用业余时间做副业,来增加…

Pycharm软件Win 64位安装包+详细安装步骤 百度云

如大家所掌握的,Pycharm是一款集成开发环境(IDE),专门用于python语言开发的工具。作为一款功能强大的IDE,Pycharm提供了丰富的功能和工具,使得python开发变得更加高效和便捷。 Pycharm常用场景如下&#x…

Delphi5实现鱼C屏幕保护程序

效果图 鱼C屏幕保护程序 添加背景图片 在additional添加image组件,修改picture属性上传图片。 这个图片可以截屏桌面,方便后面满屏不留白操作。实现无边框 即上面的“- □ ”不显示 将Form1的borderstyle属性改为bsnone实现最大化,满屏 将…

使用API Monitor探测C++程序在调用HtmlHelp接口打开.chm文件时传入了哪些参数

目录 1、API Monitor介绍 2、为何要使用API Monitor工具? 2、HtmlHelp函数在API列表函数中找不到,将所在模块作为外部Extern DLL模块添加到API Monitor中 3、开启对Beyond Compare工具软件的实时监测 4、在Beyond Compare软件中打开chm帮助文档&…

0719_驱动3 printk使用方法

一、printk使用方法 1.应用层打印使用printf,内核层使用printk 2.如何查看内核层中printk如何使用 3.在内核空间执行grep "printk" * -nR 4.在内核空间执行vi -t KERN_INFO 5.printk有8中打印级别(0-7),打印级别用来过滤…

学习大数据DAY22 Linux 基 本 指 令 3与 在 Linux 系 统 中 配 置MySQL 和 Oracle

目录 网络配置类 ps 显示系统执行的进程 kill systemctl 服务管理 配置静态 ip 常见错误---虚拟机重启网卡失败或者网卡丢失 mysql 操作 上机练习 6---安装 mysql---参考《mysql 安装》文档 解锁 scott 重启后的步骤 上机练习 7---安装 oracle---参考《oracle 安装》…

Java数据结构与算法--链表(Linked List)

博客主页:誓则盟约系列专栏:Java SE关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 深入了解链表: 链表是一种常见的数据结构,它由一系列节点…

【Redis】主从复制分析-使用

Reids 主从复制: 将一台 Redis 服务器的数据, 复制到其他的 Redis 服务器。前者称为主节点 (master), 后者称为从节点 (slave)。 数据的复制是单向的, 只能由主节点到从节点, 同时主节点以写为主 (可写也可以读), 从节点只能读不可写入。 1 主从复制的建立 本文简单的介绍一下…

深入理解CSS中的变量(概念篇)

CSS变量,也称为自定义属性,是一种在CSS中定义和重用值的方式。它们允许开发者在一个地方定义样式值,然后在整个样式表中引用这些值,从而提高代码的可维护性和可读性。 1、定义和使用CSS变量 CSS变量的定义和使用非常简单。变量名以两个连字符开头,变量值为任何有效的CSS…

常用自启设置

一、开机自启动 1、编辑 vi /lib/systemd/system/nginx.service 文件,没有创建一个 touch nginx.service 然后将如下内容根据具体情况进行修改后,添加到nginx.service文件中: [Unit] Descriptionnginx Afternetwork.target remote-fs.targ…

jdk版本区别

JDK(Java Development Kit)是 Java 开发工具包,它包括了 Java SE(Standard Edition)、编译器、调试器和其他开发工具。Oracle 公司是 JDK 的主要供应商,它提供了多个版本的 JDK,每个版本都有自己…

SPL 算法详解

1. 引言 SPL(Single-Precision Linear)算法是一种在计算机图形学和数据处理领域中常用的线性插值算法。线性插值用于在已知数据点之间估计未知数据点,通过简单的线性计算,SPL 算法可以快速、有效地实现这一目标。本文将详细介绍 …

SQLException:Operation not allowed after ResultSet closed

运行代码时出现的错误: 这是在运行简单的JDBC访问数据库时出现的问题,原因是在ResultSet方法中添加了close()关闭方法,如图: ResultSet 是通过 query 方法获得的,并且在 try-catch 块中没有显式地关闭它。这实际上是 一个常见的…

暴雨宅家?AI拯救你的无聊暑假!高中生必藏神器大公开

嘿,各位高中生朋友们,最近是不是被这没完没了的暴雨困在家里,感觉暑假生活都快发霉了?别急,今天我要揭秘一个宝藏网站—— ai123.cn,它简直就是咱们暑期宅家必备的救星!接下来,我就来…

whaler_通过镜像导出dockerfile

1、Whaler简介 Whaler:从镜像导出Dockerfile,whaler英文释义捕鲸船。 2、下载安装 # wget -cO /usr/local/bin/whaler https://github.com/P3GLEG/Whaler/releases/download/1.0/Whaler_linux_amd64 3、赋予可执行权限 [rootlocalhost ~]# chmod x /usr/local/…

【elasticsearch实现优先展示连词并按某个字段折叠显示最新一条】

elasticsearch实现优先展示连词并按某个字段折叠显示最新一条 前言match_phrase 顺序前缀 boost 权重collapse 折叠基本用法高级功能排序 前言 场景要求: 优先展示关键词连词的商品按照某个字段折叠相同字段,并按指定排序字段选择第一个 match_phras…

Web漏洞扫描工具(AWVS、Goby)

一、背景 想针对自己项目或者小公司的Web安全做相关扫描,自己做漏洞进行自查工作,能够减少自身系统的安全风险,提高系统的安全性。但是没有找到一些开源性质的、扫描质量比较高的相关工具,使用安全公司的专业产品价格又承受不起。…

loj2143组合题解

组合 求 ∑ i 0 ∞ C n k i k r \sum_{i0}^{\infty} C_{n k}^{i kr} ∑i0∞​Cnkikr​ 模 p p p 的值。 这道题题目非常的善良,直接把式子送给我们了,那我们直接开始推式子: ∑ i 0 ∞ C n k i k r ∑ i 0 ∞ ∑ j 0 w C w j C n…