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

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进行各种类型的数据可视化,实际应用中可以根据具体需求进行扩展和调整。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Leetcode】十八、动态规划:不同路径 + 全1的最大正方形
  • C++ OpenCV 使用 resize() 调整图像大小
  • 正则采集器——前端搭建
  • 从小白到架构师:万字长文 | 社交媒体应用系统设计
  • python实现建立一个智能小车路径规划
  • SvelteKit - 1. 初始化项目
  • 快速上手FastAPI:构建和调用Python API的全方位指南
  • 【elementui】记录el-table设置左、右列固定时,加大滚动条宽度至使滚动条部分被固定列遮挡的解决方法
  • 解决R语言找不到系统库导致的报错
  • jenkins删除历史构建记录
  • CentOS 7.x 的 YUM 仓库问题
  • Poetry入门教程
  • Harmony学习(三)
  • Pandas筛选数据的10种方法
  • LVGL - RV1109 LVGL UI刷新效率优化-02
  • 【笔记】你不知道的JS读书笔记——Promise
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Android 控件背景颜色处理
  • CSS 专业技巧
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • JavaScript中的对象个人分享
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Mysql5.6主从复制
  • Node 版本管理
  • Python十分钟制作属于你自己的个性logo
  • vue中实现单选
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 开发基于以太坊智能合约的DApp
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • C# - 为值类型重定义相等性
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • ​如何防止网络攻击?
  • ​油烟净化器电源安全,保障健康餐饮生活
  • # wps必须要登录激活才能使用吗?
  • #DBA杂记1
  • #pragma data_seg 共享数据区(转)
  • #pragma pack(1)
  • #宝哥教你#查看jquery绑定的事件函数
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (007)XHTML文档之标题——h1~h6
  • (04)odoo视图操作
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (6)添加vue-cookie
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (六)vue-router+UI组件库
  • (转)VC++中ondraw在什么时候调用的
  • (自用)网络编程
  • .bat批处理出现中文乱码的情况
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .NET Core 成都线下面基会拉开序幕
  • .Net MVC + EF搭建学生管理系统
  • .NET MVC第三章、三种传值方式
  • .NET中GET与SET的用法
  • @private @protected @public