《Pandas 简易速速上手小册》第9章:Pandas 数据可视化(2024 最新版)

news2024/11/23 12:13:37

在这里插入图片描述

文章目录

  • 9.1 Pandas 内置可视化工具
    • 9.1.1 基础知识
    • 9.1.2 重点案例:销售数据分析
    • 9.1.3 拓展案例一:产品评价统计
    • 9.1.4 拓展案例二:员工满意度分布
  • 9.2 与 Matplotlib 和 Seaborn 集成
    • 9.2.1 基础知识
    • 9.2.2 重点案例:销售趋势分析
    • 9.2.3 拓展案例一:产品评分分布
    • 9.2.4 拓展案例二:员工满意度调查箱型图分析
  • 9.3 高级数据可视化策略
    • 9.3.1 基础知识
    • 9.3.2 重点案例:交互式股票价格趋势分析
    • 9.3.3 拓展案例一:多维数据展示
    • 9.3.4 拓展案例二:地理信息可视化

9.1 Pandas 内置可视化工具

Pandas 内置的可视化工具是基于 Matplotlib,为数据分析提供了一种快速、简便的图表生成方式。这些工具能够直接从 DataFrame 和 Series 中生成图表,无需繁琐的数据准备工作。

9.1.1 基础知识

  1. 基本图表类型: Pandas 支持多种图表类型,包括线图(.plot())、条形图(.bar())、直方图(.hist())、箱形图(.box())等。
  2. 简单的绘图语法: 可以直接在 DataFrame 或 Series 上调用绘图方法,Pandas 会处理大部分绘图细节。
  3. 定制化选项: 尽管 Pandas 的绘图是为了快速绘制而设计的,但它也提供了一些定制化选项,比如颜色、标签、标题等。

9.1.2 重点案例:销售数据分析

假设你有一份包含过去一年每月销售额的数据,你想要可视化这些数据以分析销售趋势。

数据准备

import pandas as pd
import numpy as np

# 生成示例销售数据
months = pd.date_range('2023-01', periods=12, freq='M')
sales = np.random.randint(100, 1000, size=12)

sales_df = pd.DataFrame({'Month': months, 'Sales': sales})
sales_df.set_index('Month', inplace=True)

绘制线图

# 绘制销售趋势线图
sales_df.plot(title='Monthly Sales for 2023')

9.1.3 拓展案例一:产品评价统计

假设你想分析不同产品的评价数量,以便了解哪些产品更受欢迎。

数据准备

# 生成示例产品评价数据
product_reviews = pd.DataFrame({
    'Product': ['Product A', 'Product B', 'Product C', 'Product A', 'Product B'],
    'Rating': [5, 3, 4, 2, 5]
})

# 统计每个产品的评价数量
review_counts = product_reviews.groupby('Product').size()

绘制条形图

# 绘制每个产品的评价数量条形图
review_counts.plot(kind='bar', title='Review Counts by Product', color=['blue', 'green', 'red'])

9.1.4 拓展案例二:员工满意度分布

你有一份员工满意度调查的结果,想要通过直方图了解满意度的分布情况。

数据准备

# 生成示例员工满意度数据
satisfaction_data = pd.DataFrame({
    'Satisfaction': np.random.randint(1, 6, size=50)  # 1到5的满意度评分
})

绘制直方图

# 绘制满意度分布的直方图
satisfaction_data['Satisfaction'].plot(kind='hist', bins=5, title='Employee Satisfaction Distribution', alpha=0.7)

通过这些案例,我们展示了如何使用 Pandas 内置的可视化工具来快速创建图表,以及如何根据数据的不同类型和需求选择合适的图表类型。这些工具不仅使得数据可视化变得更加直接和简单,还为数据分析提供了强大的支持。

在这里插入图片描述


9.2 与 Matplotlib 和 Seaborn 集成

虽然Pandas提供了一些基本的可视化功能,但当涉及到更复杂的图表和定制化需求时,Matplotlib和Seaborn这两个库就显得尤为重要了。Matplotlib是Python中最著名的绘图库之一,提供了大量的绘图功能;Seaborn则是基于Matplotlib,提供了更高层次的接口,专注于统计图表的绘制,使得图表更加美观、更容易创建。

9.2.1 基础知识

  1. Matplotlib: 提供了一个类似于MATLAB的绘图框架,可以用于创建高质量的图形。
  2. Seaborn: 在Matplotlib的基础上提供了更多的绘图模式,特别是一些统计图表,使得数据可视化不仅简单,而且更加美观。

9.2.2 重点案例:销售趋势分析

使用Matplotlib和Seaborn对过去一年的月销售数据进行可视化分析。

数据准备

import pandas as pd
import numpy as np

# 示例销售数据
dates = pd.date_range('2023-01', periods=12, freq='M')
sales = np.random.randint(1000, 5000, size=12)

sales_df = pd.DataFrame({'Date': dates, 'Sales': sales})

使用 Matplotlib 绘制

import matplotlib.pyplot as plt

plt.figure(figsize=(10, 6))
plt.plot(sales_df['Date'], sales_df['Sales'], marker='o', linestyle='-', color='b')
plt.title('Monthly Sales for 2023')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.grid(True)
plt.show()

使用 Seaborn 绘制

import seaborn as sns

sns.set(style="whitegrid")
plt.figure(figsize=(10, 6))
sns.lineplot(x='Date', y='Sales', data=sales_df, marker='o', color='g')
plt.title('Monthly Sales for 2023')
plt.show()

9.2.3 拓展案例一:产品评分分布

分析一份产品评分数据,了解评分的分布情况。

数据准备

scores = np.random.randint(1, 6, size=100)
scores_df = pd.DataFrame({'Score': scores})

使用 Seaborn 绘制直方图

sns.histplot(scores_df['Score'], bins=5, kde=True, color='skyblue')
plt.title('Distribution of Product Scores')
plt.show()

9.2.4 拓展案例二:员工满意度调查箱型图分析

使用箱型图对员工满意度调查结果进行可视化,以识别满意度的分布和异常值。

数据准备

satisfaction = np.random.randint(1, 6, size=100)
departments = np.random.choice(['HR', 'Development', 'Sales'], size=100)
satisfaction_df = pd.DataFrame({'Satisfaction': satisfaction, 'Department': departments})

使用 Seaborn 绘制箱型图

sns.boxplot(x='Department', y='Satisfaction', data=satisfaction_df, palette='Set2')
plt.title('Employee Satisfaction Across Departments')
plt.show()

通过这些案例,我们展示了如何使用Matplotlib和Seaborn进行数据可视化,包括如何绘制线图、直方图和箱型图。这些工具的灵活性和强大功能使得从简单到复杂的数据可视化需求都能得到满足。

在这里插入图片描述


9.3 高级数据可视化策略

高级数据可视化策略可以帮助我们更深入地理解数据,揭示数据中隐藏的模式和关系。这些策略包括交互式可视化、多维数据展示以及利用地理信息的可视化等。

9.3.1 基础知识

  1. 交互式可视化: 允许用户通过交互操作(如点击、拖拽、缩放等)来探索数据,常见的工具有 Plotly、Bokeh 等。
  2. 多维数据展示: 如平行坐标图、雷达图等,可以在一个图表中展示多个维度的数据,有助于识别数据之间的复杂关系。
  3. 地理信息的可视化: 利用地图展示数据,尤其适用于具有地理属性的数据,如使用 GeoPandas、Folium 进行地理数据的可视化。

9.3.2 重点案例:交互式股票价格趋势分析

使用 Plotly 绘制一个交互式的股票价格趋势图,允许用户查看不同时间点的价格。

数据准备

import pandas as pd
import numpy as np

# 生成示例股票价格数据
dates = pd.date_range(start="2023-01-01", periods=100)
prices = np.random.normal(100, 10, size=100).cumsum()  # 模拟股票价格

stock_df = pd.DataFrame({'Date': dates, 'Price': prices})

绘制交互式图表

import plotly.express as px

fig = px.line(stock_df, x='Date', y='Price', title='Stock Price Trend')
fig.show()

9.3.3 拓展案例一:多维数据展示

展示员工绩效评估的多维数据,包括销售业绩、客户满意度和工作效率等。

数据准备

# 生成示例员工绩效评估数据
performance_data = {
    'Employee': ['Alice', 'Bob', 'Charlie'],
    'Sales Performance': [80, 90, 85],
    'Customer Satisfaction': [90, 85, 95],
    'Work Efficiency': [85, 95, 90]
}
performance_df = pd.DataFrame(performance_data)

绘制雷达图

由于Pandas、Matplotlib和Seaborn不直接支持雷达图,此处描述一个使用Matplotlib绘制雷达图的基本方法,实际代码实现略过。

9.3.4 拓展案例二:地理信息可视化

使用地理信息展示不同城市的销售数据。

数据准备

# 假设数据
cities_data = {
    'City': ['New York', 'Los Angeles', 'Chicago'],
    'Latitude': [40.7128, 34.0522, 41.8781],
    'Longitude': [-74.0060, -118.2437, -87.6298],
    'Sales': [10000, 8500, 9000]
}
cities_df = pd.DataFrame(cities_data)

使用 Folium 进行地图可视化

import folium

# 创建地图
m = folium.Map(location=[37.0902, -95.7129], zoom_start=4)

# 添加销售数据点
for i, row in cities_df.iterrows():
    folium.Marker([row['Latitude'], row['Longitude']], popup=f"{row['City']}: {row['Sales']}").add_to(m)

# 显示地图
m

通过这些案例,我们展示了如何应用高级数据可视化策略,从交互式图表到多维数据展示,再到地理信息的可视化,这些方法可以帮助我们以更直观、更深入的方式理解和展示数据。

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

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

相关文章

「递归算法」:验证二叉搜索树

一、题目 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例 1&#xff…

vulhub中Apache APISIX 默认密钥漏洞复现(CVE-2020-13945)

Apache APISIX是一个高性能API网关。在用户未指定管理员Token或使用了默认配置文件的情况下,Apache APISIX将使用默认的管理员Token edd1c9f034335f136f87ad84b625c8f1,攻击者利用这个Token可以访问到管理员接口,进而通过script参数来插入任意…

110.乐理基础-五线谱-五线谱的速度

内容参考于:三分钟音乐社 上一个内容:五线谱的附点、休止符、连线、延音线-CSDN博客 上一个内容里练习的答案: 五线谱里的情绪与速度也是跟简谱里一样,详情看:音乐的速度 专栏里的内容,根据创建时间&…

CNN应用Keras Tuner寻找最佳Hidden Layers层数和神经元数量

介绍: Keras Tuner是一种用于优化Keras模型超参数的开源Python库。它允许您通过自动化搜索算法来寻找最佳的超参数组合,以提高模型的性能。Keras Tuner提供了一系列内置的超参数搜索算法,如随机搜索、网格搜索、贝叶斯优化等。它还支持自定义…

《Python 网络爬虫简易速速上手小册》第2章:网络爬虫准备工作(2024 最新版)

文章目录 2.1 选择合适的爬虫工具和库2.1.1 重点基础知识讲解2.1.2 重点案例:使用 Scrapy 抓取电商网站2.1.3 拓展案例 1:使用 Requests 和 BeautifulSoup 抓取博客文章2.1.4 拓展案例 2:使用 Selenium 抓取动态内容 2.2 设置开发环境2.2.1 重…

计算机毕业设计 | vue+SpringBoot图书借阅管理系统(附源码)

1, 概述 1.1 课题背景 随着现在科学技术的进步,人类社会正逐渐走向信息化,图书馆拥有丰富的文献信息资源,是社会系统的重要组成部分,在信息社会中作用越来越重要,在我国图书馆计算机等 信息技术的应用起步…

【Linux】文件重定向与实现支持文件重定向的minishell

目录 0.前提 ​编辑 1.重定向 1.1重定向的本质 1.2dup2 1.3模拟实现输出重定向 > 1.4模拟实现追加重定向 >> 1.5模拟实现输入重定向 < 2.让minishell支持重定向 0.前提 文件描述符的分配规则&#xff1a; 在文件描述符表里面&#xff0c;从小到大按照顺…

linux中的mtime,ctime,atime

目录 结论 文件 touch新文件 调整文件内容 echo直接修改 vi修改 修改文件属性 调整归属 调整权限 读取文件 目录 增加文件 调整目录下文件属性 访问目录下文件 删除文件 结论 mtime&#xff1a;文件内容的修改时间&#xff08;不含权限、属组修改&#xff09; …

计算机网络-封装成帧透明传输(组帧方法)

文章目录 数据链路层功能概述封装成帧透明传输组帧方法字符计数法字符填充法零比特填充法违规编码法 字符填充法为啥复杂和不兼容 数据链路层功能概述 类似老板让小秘书送文件给别的公司&#xff0c;小秘书告诉傻子怎么把该文件送到别的公司的小秘书&#xff0c;然后别的公司的…

基于springboot就业信息管理系统源码和论文

随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;就业信息管理系统也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;人工管理显然已无法应对时代的变化&#xff0c;而…

挑战杯 python 机器视觉 车牌识别 - opencv 深度学习 机器学习

1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于python 机器视觉 的车牌识别系统 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;3分 &#x1f9ff; 更多资…

【王者荣耀】:背后的技术之谜,揭秘游戏背后的实现奥秘!

目录 1、引言 2、游戏引擎 3、网络技术 4、图形渲染 5、操作控制 6、AI算法 7、数据管理 8、安全防护 9、优化与性能 10、未来发展 11、结语 1、引言 随着智能手机的普及和移动互联网的发展&#xff0c;手机游戏已经成为人们日常娱乐的重要组成部分。而在众多手机游…

Oracle Server一台价值百万的服务器内存更换过程

数据库代码敲多了&#xff0c;看乏了吧&#xff01; 带各位DBA看看你们的数据库运行在什么样的硬件上。 1、故障现象 事发时2号位置报警 登录ILO发现内存报警 查看详细信息 查看详细报警 2、关于ORACLE 服务器DIMM 备用 默认情况下在 Oracle ILOM 中启用 DIMM 备用。由 DIMM 提…

MySQL的原生API实现插入数据后在可视化工具上不显示的问题解决

显示表中有两行数据&#xff0c;该表也设置了主键和唯一索引 点进表里看却没有数据 问题原因出现在这里&#xff0c;虽然很多常用的数据库连接池都会开启自动提交&#xff0c;但ibatis的SqlSession使用sessionFactory.openSession()创建时&#xff0c;默认的自动提交是false&am…

vcruntime140.dll最新的修复方法,一键修复vcruntime140.dll的手段

在这篇文章中&#xff0c;我们将深入探讨并详细介绍各种修复vcruntime140.dll文件缺失或损坏问题的方法。鉴于此类问题广泛存在并影响了众多用户&#xff0c;本文目的是向大家展示不同的修复策略&#xff0c;希望能够帮助每个人解决这些棘手的技术难题。下面一起来看看vcruntim…

02-单例模式 ( Singleton Pattern )

单例模式 单例模式设计要点单例模式基础实现摘要实现范例 单例模式的几种实现方式1. 懒汉式&#xff0c;线程不安全2. 懒汉式&#xff0c;线程安全3. 饿汉式4. 双检锁/双重校验锁&#xff08;DCL&#xff0c;即 double-checked locking&#xff09;5. 登记式/静态内部类6. 枚举…

更新npm镜像源:淘宝镜像已过期,及时切换!

你好&#xff0c;我是小白Coding日志&#xff0c;一个热爱技术的程序员。在这里&#xff0c;我分享自己在编程和技术世界中的学习心得和体会。希望我的文章能够给你带来一些灵感和帮助。欢迎来到我的博客&#xff0c;一起在技术的世界里探索前行吧&#xff01; 前言 就在昨天…

使用PHPStudy搭建Cloudreve网盘服务

文章目录 1、前言2、本地网站搭建2.1 环境使用2.2 支持组件选择2.3 网页安装2.4 测试和使用2.5 问题解决 3、本地网页发布3.1 cpolar云端设置3.2 cpolar本地设置 4、公网访问测试5、结语 1、前言 自云存储概念兴起已经有段时间了&#xff0c;各互联网大厂也纷纷加入战局&#…

【2024.2.4练习】国王游戏

题目描述 题目思路 涉及排列组合求最优解问题&#xff0c;数据大考虑是否满足某种贪心策略。 假设不除以右手的数字&#xff0c;那么获得金币数量最多的显然为最后一个人。左手数字最大的应排在最后一位。在右手有数字的情况下&#xff0c;不妨也尝试从最后一个人开始排。 假…

Python---Pycharm安装各种库(第三方库)

一、前言 Pycharm中&#xff0c;通常需要安装很多第三方库&#xff0c;才可以使用相应的拓展功能&#xff0c;这篇文档给你介绍Pycharm中的常用库&#xff0c;以及安装的两种方法!二、Pycharm常用库的介绍 Pycharm是一款非常流行的Python集成开发环境&#xff08;IDE&#xff…