Pandas数据分析:快速图表可视化各类操作详解+实例代码(三)

简介: Pandas数据分析:快速图表可视化各类操作详解+实例代码(三)

前言


一般我们做数据挖掘或者是数据分析,再或者是大数据开发提取数据库里面的数据时候,难免只能拿着表格数据左看右看,内心总是希望能够根据自己所想立马生成一张数据可视化的图表来更直观的呈现数据。而当我们想要进行数据可视化的时候,往往需要调用很多的库与函数,还需要数据转换以及大量的代码处理编写。这都是十分繁琐的工作,确实只为了数据可视化我们不需要实现数据可视化的工程编程,这都是数据分析师以及拥有专业的报表工具来做的事情,日常分析的话我们根据自己的需求直接进行快速出图即可,而Pandas正好就带有这个功能,当然还是依赖matplotlib库的,只不过将代码压缩更容易实现。下面就让我们来了解一下如何快速出图。

b40820f8c20448d996c7e8a392c60e34.png


Pandas数据分析:快速图表可视化各类操作详解+实例代码(一)


Pandas数据分析:快速图表可视化各类操作详解+实例代码(二)


Pandas数据分析系列专栏已经更新了很久了,基本覆盖到使用pandas处理日常业务以及常规的数据分析方方面面的问题。从基础的数据结构逐步入门到处理各类数据以及专业的pandas常用函数讲解都花费了大量时间和心思创作,如果大家有需要从事数据分析或者大数据开发的朋友推荐订阅专栏,将在第一时间学习到Pandas数据分析最实用常用的知识。此篇博客篇幅较长,涉及到数据可视化等各类操作,值得细读实践一番,我会将Pandas的精华部分挑出细讲实践。博主会长期维护博文,有错误或者疑惑可以在评论区指出,感谢大家的支持。


一、六边形箱图


可以通过DataFrame.plot.hexbin()来创建一个六边形箱图。如果数据过于密集,无法单独绘制每个点,则Hexbin图可以作为散点图的有用替代方案。

这里我们不用上一个数据集,换用一个数据集,就用这次2022国赛E题的数据来展示:


20123a041b6f4d4faca0e3817ffc32cc.png

df_example[['出现频次','需求总数']].plot.hexbin(x='出现频次',y='需求总数',gridsize=25)

162d6f5d13604c9496e7d4d47a4d127f.png


效果不是很好,因为上限和下限都差的很多,用集中的数据集更好展现效果。


df = pd.DataFrame(np.random.randn(1000, 2), columns=["a", "b"])
df["b"] = df["b"] + np.arange(1000)
df.plot.hexbin(x="a", y="b", gridsize=25);

8941be34ab1848c387d19bb4350f73fc.png

关键字参数gridsize:它控制x方向六边形的数量,默认值为100。网格越大,箱子越小。


df.plot.hexbin(x="a", y="b", gridsize=10);



b789baa408ba4b1b8a479c7c37a33790.png

默认情况下,计算每个(x,y)点周围计数的直方图。您可以通过向C和reduce_C_function参数传递值来指定替代聚合。C指定每个(x,y)点的值,reduce_C_function是一个参数的函数,它将bin中的所有值聚合为一个数字(例如mean、max、sum、std)。在本例中,位置由a列和b列给出,而值由z列给出。这些箱子通过NumPy的max函数进行聚合。


df = pd.DataFrame(np.random.randn(1000, 2), columns=["a", "b"])
df["b"] = df["b"] + np.arange(1000)
df["z"] = np.random.uniform(0, 3, 1000)
df.plot.hexbin(x="a", y="b", C="z", reduce_C_function=np.max, gridsize=25);

5782e14f98e245c5bea44191d5ea883c.png

二、饼图


使用DataFrame.plot.pie()或者是Series.plot.pie()可以创建饼图。如果数据包含任何NaN,则它们将自动填充为0。如果数据中有任何负值,则会引发ValueError。


series = pd.Series(3 * np.random.rand(4), index=["a", "b", "c", "d"], name="series")
series.plot.pie(figsize=(6, 6));



272c17126d7945fca331669c298c6838.png


对于饼图,最好使用正方形图形,即图形纵横比1。可以创建宽度和高度相等的图形,或者在绘图后通过调用ax强制使纵横比相等。返回的axes对象上的ax.set_aspect('equal')。


带有DataFrame的饼图需要通过y参数或subplots=True指定目标列。当指定y时,将绘制所选列的饼图。如果指定subplots=True,则每个列的饼图都将绘制为subplots。默认情况下,将在每个饼图中绘制图例;指定legend=False将其隐藏。


cc896046e1284b38a3c713c44b04497d.png


q1_1_result['最终得分'].plot.pie(labels=q1_1_result['物料编码'].values,figsize=(6, 6),autopct="%.2f")




dbfbb182e9fb4cb0b3e68972ca87c169.png

df_flow_mark[['湿度','体感温度']].plot.pie(subplots=True, figsize=(8, 4));

42cf63a85f534f76a354e59301d5c514.png


可以使用标签和颜色关键字指定每个按钮的标签和颜色。


大多数Pandas图都使用标签和颜色参数(注意这些参数上没有“s”)。与matplotlib.pyplot一致。pie()必须使用标签和颜色。


如果要隐藏楔体标签,指定labels=None。如果指定了fontsize,则该值将应用于楔形标签。此外,matplotlib.pyplot支持的其他关键字,可以使用pie()。

series.plot.pie(
    labels=["AA", "BB", "CC", "DD"],
    colors=["r", "g", "b", "c"],
    autopct="%.2f",
    fontsize=20,
    figsize=(6, 6),
);

5957dd97b6c546aba59058082a608a27.png


如果传递的值的总和小于1.0,则会重新缩放这些值,使其总和为1。


1. series = pd.Series([0.1] * 4, index=["a", "b", "c", "d"], name="series2")
2. series.plot.pie(figsize=(6, 6));


99e16f7f6688436ba2b13dbe5f489d62.png



三、缺失数据绘制处理


Pandas在绘制包含缺失数据的DataFrame或Series时尽可能完全填充。根据打印类型,删除、省略或填充缺少的值。


ad90bcbb9a024601a5283aaa7f1822fd.png

如果这些默认值中有任何一个不是您想要的,或者如果您想明确说明如何处理缺少的值,请考虑在绘制之前使用fillna()或dropna()。


那么到目前为止所有常用的绘图形式都讲完了。接下来会对plot的多样性组合表和特殊形式表进行补充,以及一些其他类数据的绘图进行总结:



12c44ea6bfa54c298610dc69edba22a7.png


72ac773ac0a24a118f943dbb7eedc7be.png


265b4b03dfca4207ba91ae5c89145678.png


26c7b895a4804a5d83966bb8c245cd68.png


目录
相关文章
|
1月前
|
数据挖掘 C语言 索引
数据分析-pandas(三)
在这里,我们将讨论pandas数据结构中常见的许多基本功能
18 0
|
6天前
|
数据采集 SQL 数据可视化
Python数据分析工具Pandas
【4月更文挑战第14天】Pandas是Python的数据分析库,提供Series和DataFrame数据结构,用于高效处理标记数据。它支持从多种数据源加载数据,包括CSV、Excel和SQL。功能包括数据清洗(处理缺失值、异常值)、数据操作(切片、过滤、分组)、时间序列分析及与Matplotlib等库集成进行数据可视化。其高性能底层基于NumPy,适合大型数据集处理。通过加载数据、清洗、分析和可视化,Pandas简化了数据分析流程。广泛的学习资源使其成为数据分析初学者的理想选择。
12 1
|
8天前
|
供应链 搜索推荐 数据挖掘
Pandas实战案例:电商数据分析的实践与挑战
【4月更文挑战第16天】本文通过一个电商数据分析案例展示了Pandas在处理销售数据、用户行为分析及商品销售趋势预测中的应用。在数据准备与清洗阶段,Pandas用于处理缺失值、重复值。接着,通过用户购买行为和商品销售趋势分析,构建用户画像并预测销售趋势。实践中遇到的大数据量和数据多样性挑战,通过分布式计算和数据标准化解决。未来将继续深入研究Pandas与其他先进技术的结合,提升决策支持能力。
|
8天前
|
存储 数据可视化 数据挖掘
实战案例:Pandas在金融数据分析中的应用
【4月更文挑战第16天】本文通过实例展示了Pandas在金融数据分析中的应用。案例中,一家投资机构使用Pandas加载、清洗股票历史价格数据,删除无关列并重命名,将日期设为索引。接着,数据被可视化以观察价格走势,进行基本统计分析了解价格分布,以及计算移动平均线来平滑波动。Pandas的便捷功能在金融数据分析中体现出高效率和实用性。
|
15天前
|
数据采集 数据挖掘 数据处理
Pandas库在数据分析中的作用
【4月更文挑战第9天】Pandas,一个基于NumPy的数据分析Python库,以强大的数据处理和便捷的接口闻名。它包含两个核心数据结构:Series(一维标签数组)和DataFrame(二维表格)。Pandas支持数据导入/导出(如CSV、Excel),数据清洗(处理缺失值和重复值),描述性统计分析,分组聚合,以及与Matplotlib等库集成实现数据可视化。通过多索引和层次化索引,Pandas能灵活处理复杂数据集,是数据科学领域的关键工具。本文旨在帮助读者理解并运用Pandas进行高效数据分析。
|
1月前
|
SQL 数据挖掘 数据库管理
数据分析-pandas(二)
DataFrame是一个二维标记数据结构,其中包含可能不同类型的列。您可以将其视为电子表格或SQL表,或者Series对象的字典。它通常是最常用的pandas对象。与Series一样,DataFrame接受许多不同类型的输入: 一维ndarray,列表,字典,或字典的Series
27 0
|
14天前
|
数据采集 数据可视化 数据挖掘
深入浅出:使用Python进行数据分析
在这篇文章中,我们将探索Python在数据分析中的应用,介绍几个关键的库,如Pandas、NumPy、Matplotlib,以及如何使用它们进行有效的数据处理和可视化。本文旨在为初学者提供一个清晰、简洁的指南,让读者能够快速掌握使用Python进行数据分析的基本技能,并通过一个实例加深理解。不同于其他文章的冗长解释和复杂示例,我们将以最直接、易懂的方式,让你迅速上手,即使是完全没有编程背景的读者也能轻松跟上。
|
5天前
|
机器学习/深度学习 数据挖掘 计算机视觉
python数据分析工具SciPy
【4月更文挑战第15天】SciPy是Python的开源库,用于数学、科学和工程计算,基于NumPy扩展了优化、线性代数、积分、插值、特殊函数、信号处理、图像处理和常微分方程求解等功能。它包含优化、线性代数、积分、信号和图像处理等多个模块。通过SciPy,可以方便地执行各种科学计算任务。例如,计算高斯分布的PDF,需要结合NumPy使用。要安装SciPy,可以使用`pip install scipy`命令。这个库极大地丰富了Python在科学计算领域的应用。
11 1
|
6天前
|
数据可视化 数据挖掘 Python
Python中数据分析工具Matplotlib
【4月更文挑战第14天】Matplotlib是Python的数据可视化库,能生成多种图表,如折线图、柱状图等。以下是一个绘制简单折线图的代码示例: ```python import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] plt.figure() plt.plot(x, y) plt.title('简单折线图') plt.xlabel('X轴') plt.ylabel('Y轴') plt.show() ```
10 1
|
9天前
|
Python 数据挖掘 存储
Python 数据分析(PYDA)第三版(七)(4)
Python 数据分析(PYDA)第三版(七)
33 1