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

Pandas 数据可视化指南:从散点图到面积图的全面展示

Pandas 数据可视化指南:从散点图到面积图的全面展示

本文介绍了使用 Pandas 进行数据可视化的多种方法,包括散点图、折线图、条形图、直方图、饼图和面积图等,涵盖了常见的图表类型及其实现方式。通过提供详细的代码示例,展示了如何使用 Pandas 和 Matplotlib 快速创建不同类型的图表,帮助读者轻松掌握数据可视化技术。这篇指南既适合初学者,也为有经验的开发者提供了一些实用技巧,帮助在数据分析中更直观地展示结果。

文章目录

  • Pandas 数据可视化指南:从散点图到面积图的全面展示
      • 一 散点图(Scatter)
      • 二 折线图(Plot)
        • 简单折线图
        • 多折线图
      • 三 条形图(Bar)
        • 垂直条形图
        • 堆叠条形图
        • 水平条形图
      • 四 直方图(Hist)
        • 简单直方图
        • 重叠直方图
      • 五 饼图(Pie)
        • 简单饼图
        • 多个饼图
      • 六 面积图(Area)
        • 堆叠面积图
        • 同起点面积图
      • 七 完整代码示例
      • 八 源码地址

导入库

在开始绘制图表之前,我们首先导入必要的库

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

一 散点图(Scatter)

在这里插入图片描述

n = 1024  # 数据量
# 创建数据框
df = pd.DataFrame({"x": np.random.normal(0, 1, n),"y": np.random.normal(0, 1, n),
})
# 使用 arctan2 函数计算颜色
color = np.arctan2(df["y"], df["x"])
# 绘制散点图
df.plot.scatter(x="x", y="y", c=color, s=60, alpha=0.5, cmap="rainbow")

二 折线图(Plot)

简单折线图

在这里插入图片描述

n = 20  # 数据量
x = np.linspace(-1, 1, n)
y = x * 2 + 0.4 + np.random.normal(0, 0.3, n)
# 创建数据框
df = pd.DataFrame({"x": x,"y": y,
})
# 绘制折线图
df.plot(x="x", y="y", alpha=0.5, c="r")
多折线图

在这里插入图片描述

n = 20  # 数据量
x = np.linspace(-1, 1, n)
y1 = x * -1 - 0.1 + np.random.normal(0, 0.3, n)
y2 = x * 2 + 0.4 + np.random.normal(0, 0.3, n)
# 创建数据框
df = pd.DataFrame({"x": x,"y1": y1,"y2": y2,
})
# 绘制多折线图
df.plot(x="x", y=["y1", "y2"], alpha=0.5)

三 条形图(Bar)

垂直条形图

在这里插入图片描述

   	df = pd.DataFrame(np.random.rand(5, 3), columns=["a", "b", "c"])df.plot.bar()
堆叠条形图

在这里插入图片描述

   	df = pd.DataFrame(np.random.rand(5, 3), columns=["a", "b", "c"])df.plot.bar(stacked=True)
水平条形图

在这里插入图片描述

   	df = pd.DataFrame(np.random.rand(5, 3), columns=["a", "b", "c"])df.plot.barh()

四 直方图(Hist)

简单直方图

在这里插入图片描述

df = pd.DataFrame({"a": np.random.randn(1000)})
df.plot.hist()
重叠直方图

在这里插入图片描述

df = pd.DataFrame({"a": np.random.randn(1000) + 1,"b": np.random.randn(1000),"c": np.random.randn(1000) - 4,}
)df.plot.hist(alpha=0.5, bins=30)

五 饼图(Pie)

简单饼图

在这里插入图片描述

    df = pd.DataFrame({"boss": np.random.rand(4)},index=["meeting", "supervise", "teaching", "team building"],)df.plot.pie(y="boss", figsize=(7, 7))
多个饼图

在这里插入图片描述

df = pd.DataFrame({"bigBoss": np.random.rand(4),"smallBoss": np.random.rand(4),},index=["meeting", "supervise", "teaching", "team building"],
)
df.plot.pie(subplots=True, figsize=(9, 9), legend=False)

六 面积图(Area)

堆叠面积图

在这里插入图片描述

# 
df = pd.DataFrame(np.random.rand(10, 4),columns=["a", "b", "c", "d"]
)
df.plot.area()
同起点面积图

在这里插入图片描述

# 
df = pd.DataFrame(np.random.rand(10, 4),columns=["a", "b", "c", "d"]
)
df.plot.area(stacked=False)

详情见官方文档:Pandas 可视化图表

七 完整代码示例

# This is a sample Python script.# Press ⌃R to execute it or replace it with your code.
# Press Double ⇧ to search everywhere for classes, files, tool windows, actions, and settings.
import numpy as np
import pandas as pd
import matplotlib.pyplot as pltdef print_hi(name):# Use a breakpoint in the code line below to debug your script.print(f'Hi, {name}')  # Press ⌘F8 to toggle the breakpoint.# 散点图Scattern = 1024  # data sizedf = pd.DataFrame({"x": np.random.normal(0, 1, n),"y": np.random.normal(0, 1, n),})color = np.arctan2(df["y"], df["x"])df.plot.scatter(x="x", y="y", c=color, s=60, alpha=.5, cmap="rainbow")# 折线图Plotn = 20  # data sizex = np.linspace(-1, 1, n)y = x * 2 + 0.4 + np.random.normal(0, 0.3, n)df = pd.DataFrame({"x": x,"y": y,})df.plot(x="x", y="y", alpha=.5, c="r")n = 20  # data sizex = np.linspace(-1, 1, n)y1 = x * -1 - 0.1 + np.random.normal(0, 0.3, n)y2 = x * 2 + 0.4 + np.random.normal(0, 0.3, n)df = pd.DataFrame({"x": x,"y1": y1,"y2": y2,})df.plot(x="x", y=["y1", "y2"], alpha=.5)# 条形图Bardf = pd.DataFrame(np.random.rand(5, 3), columns=["a", "b", "c"])df.plot.bar()df.plot.bar(stacked=True)df.plot.barh()# 分布图Histdf = pd.DataFrame({"a": np.random.randn(1000)})df.plot.hist()df = pd.DataFrame({"a": np.random.randn(1000) + 1,"b": np.random.randn(1000),"c": np.random.randn(1000) - 4,})df.plot.hist(alpha=0.5, bins=30)# 饼图Piedf = pd.DataFrame({"boss": np.random.rand(4)},index=["meeting", "supervise", "teaching", "team building"],)df.plot.pie(y="boss", figsize=(7, 7))df = pd.DataFrame({"bigBoss": np.random.rand(4),"smallBoss": np.random.rand(4),},index=["meeting", "supervise", "teaching", "team building"],)df.plot.pie(subplots=True, figsize=(9, 9), legend=False)# 面积图Areadf = pd.DataFrame(np.random.rand(10, 4),columns=["a", "b", "c", "d"])df.plot.area()plt.show()df.plot.area(stacked=False)plt.show()# https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html# Press the green button in the gutter to run the script.
if __name__ == '__main__':print_hi('绘制图表')# See PyCharm help at https://www.jetbrains.com/help/pycharm/

复制粘贴并覆盖到你的 main.py 中运行,运行结果如下。

Hi, 绘制图表

八 源码地址

代码地址:

国内看 Gitee 之 pandas/绘制图表.py

国外看 GitHub 之 pandas/绘制图表.py

引用 莫烦 Python


http://www.mrgr.cn/news/61885.html

相关文章:

  • 基于springboot的社区团购系统设计与实现
  • 【华为\荣耀、中兴、华三路由器IPV6设置】
  • 【linux网络编程】| socket套接字 | 实现UDP协议聊天室
  • 【C/C++问题】
  • GIT分布式版本控制系统基础操作
  • 聊聊我在新加坡的近况
  • 深入布局- grid布局
  • printf 函数,常用的格式化输出样式
  • 机器学习领域如何做小样本训练背后的原理和逻辑
  • 答题小程序源码的优势分析
  • web自动化测试平台开发之核心执行器
  • 匹配销售策略的CRM系统挑选指南
  • 如何改变微博ip地址
  • jjycheng字符签名
  • 「JVS更新日志」低代码、无忧文档、规则引擎等10.30功能更新说明
  • phy驱动功能详解
  • 希亦内衣洗衣机Pro:18项核心数据硬核黑科技,爆发10倍洁净力!
  • Leetcode54. 螺旋矩阵
  • 【从零开始的LeetCode-算法】3216. 交换后字典序最小的字符串
  • 基于 Java Swing 实现的简单科学计算器
  • 使用 async/await 时未捕获异常的问题及解决方案
  • 【C++】结构体、enum、union回顾
  • 全面解析:轻松掌握多模态技术精髓
  • YOLOv11改进策略【注意力机制篇】| ICLR2023 高效计算与全局局部信息融合的 Sea_Attention 模块(含C2PSA二次创新)
  • 【Linux】环境ChatGLM-4-9B 模型部署
  • 消息队列-Rabbitmq(消息发送,消息接收)