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

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

c8d8ed47f9a1368db458c1960ee26c7.png

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

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


目录
相关文章
|
2月前
|
数据可视化 数据挖掘 数据处理
Python中数据可视化的魔法——使用Matplotlib和Pandas
【9月更文挑战第5天】在Python的世界里,数据可视化是连接复杂数据与人类直觉的桥梁。本篇文章将带领读者探索如何使用Matplotlib和Pandas这两个强大的库来揭示数据背后的故事。我们将从基础概念开始,逐步深入到高级技巧,让每一位读者都能轻松创建引人入胜的数据可视化图表,使数据分析变得既直观又有趣。
80 14
|
2月前
|
机器学习/深度学习 数据采集 监控
Pandas与Matplotlib:Python中的动态数据可视化
Pandas与Matplotlib:Python中的动态数据可视化
|
4月前
|
存储 数据可视化 Python
Python中的数据可视化:使用Matplotlib和Pandas探索数据
【7月更文挑战第31天】 在数据科学的世界里,可视化是理解复杂数据集的关键。本文将引导你通过Python的Matplotlib库和Pandas库来揭示数据背后的故事。我们将一起构建图表,从简单的线图到复杂的热图,每一步都将用代码示例来丰富你的理解。文章不仅仅是展示如何绘制图表,更是一次深入探索数据结构和模式的旅程。
70 8
|
5月前
|
数据可视化 数据挖掘 API
Pandas数据可视化(二)
**Pandas数据可视化教程聚焦于双变量分析,如散点图和堆叠图。散点图用于揭示两个变量间的关联,例如价格和评分,较大的点可能表示价格更高的葡萄酒得分更高。当数据过多时,可使用hexplot减少过度绘制,提供密度信息。堆叠图适合展示类别变量的分布,如不同葡萄酒类型的评分分布,显示了Chardonnay等品种的受欢迎程度。**
|
5月前
|
数据可视化 数据挖掘 API
Pandas数据可视化(一)
Pandas是Python数据分析的核心库,不仅用于数据加载和转换,还内置了简单的数据可视化功能。通过`.plot()`方法,可以创建条形图、折线图、直方图和饼图等,便于单变量分析。例如,用葡萄酒数据集展示了不同产区的葡萄酒数量,加利福尼亚占比最高。条形图适合比较类别间的差异,折线图则用于显示趋势。直方图用于数值分布,但对倾斜数据(极值影响)敏感。饼图展示类别占比,但不适用于大量分类。Pandas的可视化帮助我们理解数据集的结构和特征。
|
6月前
|
数据采集 机器学习/深度学习 数据可视化
《Pandas 简易速速上手小册》第10章:Pandas 实战案例(2024 最新版)
《Pandas 简易速速上手小册》第10章:Pandas 实战案例(2024 最新版)
48 2
|
6月前
|
数据采集 数据挖掘 数据处理
《Pandas 简易速速上手小册》第8章:Pandas 高级数据分析技巧(2024 最新版)
《Pandas 简易速速上手小册》第8章:Pandas 高级数据分析技巧(2024 最新版)
76 1
|
6月前
|
数据采集 机器学习/深度学习 自然语言处理
《Pandas 简易速速上手小册》第7章:Pandas 文本和类别数据处理(2024 最新版)
《Pandas 简易速速上手小册》第7章:Pandas 文本和类别数据处理(2024 最新版)
59 1
|
6月前
|
监控 数据挖掘 数据处理
《Pandas 简易速速上手小册》第6章:Pandas 时间序列分析(2024 最新版)
《Pandas 简易速速上手小册》第6章:Pandas 时间序列分析(2024 最新版)
53 1
|
6月前
|
数据采集 SQL 数据可视化
《Pandas 简易速速上手小册》第5章:Pandas 数据合并与重塑(2024 最新版)
《Pandas 简易速速上手小册》第5章:Pandas 数据合并与重塑(2024 最新版)
66 1