Pandas快速可视化方法介绍:折线图、散点图、直方图、箱线图、蜂窝图、饼图等作图代码分享

文摘   2024-11-13 00:11   湖北  

Pandas是Python中一个非常强大的数据处理和分析库。它提供了易于使用的数据结构和函数,特别适合处理结构化数据。事实上,Pandas自带了绘图功能,本文将介绍如何使用Pandas进行常用的绘图操作。

1.折线图

import pandas as pd
df = pd.DataFrame({'length': [1.50.51.20.93],
                 'width': [0.70.20.150.21.1]},
                 index=['pig''rabbit''duck''chicken''horse'])
plot = df.plot(title="DataFrame Plot")


2.柱状图

ser = pd.Series([1, 2, 3, 3])
plot = ser.plot(kind='hist', title="My plot")
df = pd.DataFrame({"col1" : [1, 2, 3, 4],
                  "col2" : ["A""B""A""B"]})
plot = df.groupby("col2").plot(kind="bar", title="DataFrameGroupBy Plot")


3.堆叠面积图

df = pd.DataFrame({
    'sales': [3, 2, 3],
    'visits': [20, 42, 28],
    'day': [1, 2, 3],
})
ax = df.plot.area(x='day')


4.多类数据柱状图

speed = [0.1, 17.5, 40, 48, 52, 69, 88]
lifespan = [2, 8, 70, 1.5, 25, 12, 28]
index = ['snail''pig''elephant',
         'rabbit''giraffe''coyote''horse']
df = pd.DataFrame({'speed': speed,
                   'lifespan': lifespan}, index=index)
ax = df.plot.bar(rot=0)


5.箱线图

age_list = [8, 10, 12, 14, 72, 74, 76, 78, 20, 25, 30, 35, 60, 85]
df = pd.DataFrame({"gender": list("MMMMMMMMFFFFFF"), "age": age_list})
ax = df.plot.box(column="age", by="gender", figsize=(8, 4))


6.蜂窝图(Hexbin Plot)

蜂窝图是一种用于可视化二维数据分布的图表类型,它将数据点映射到二维平面上的六边形(蜂窝)区域,通过六边形的颜色和大小来反映数据点的分布密度‌。

蜂窝图类似于散点图,但在数据密集区域使用六边形来表示数据点的分布密度。其主要目的是更好地呈现高密度区域的数据趋势,并减少在这些区域可能出现的重叠。通过六边形的颜色和大小,可以直观地展示数据的分布情况‌。

import numpy as np
import pandas as pd
# 设置随机种子
np.random.seed(42)

n = 500
df = pd.DataFrame({
    'coord_x': np.random.uniform(-3, 3, size=n),
    'coord_y': np.random.uniform(30, 50, size=n),
    'observations': np.random.randint(1,5, size=n)
    })
ax = df.plot.hexbin(x='coord_x',
                    y='coord_y',
                    C='observations',
                    reduce_C_function=np.sum,
                    gridsize=10,
                    cmap="viridis")


7.饼图

df = pd.DataFrame({'mass': [0.330, 4.87 , 5.97],
                   'radius': [2439.7, 6051.8, 6378.1]},
                  index=['Mercury''Venus''Earth'])
plot = df.plot.pie(y='mass', figsize=(5, 5))


8.散点图

df = pd.DataFrame([[5.1, 3.5, 0], [4.9, 3.0, 0], [7.0, 3.2, 1],
                   [6.4, 3.2, 1], [5.9, 3.0, 2]],
                  columns=['length''width''species'])
ax1 = df.plot.scatter(x='length',
                      y='width',
                      c='DarkBlue')


通过本文的学习,大家是否发现使用pandas绘图非常简单。也就是说,在处理数据时,可以随时进行作图,从而更方便地呈现数据。



Python学习杂记
数据分析与挖掘、运筹优化、机器学习、AI 、数据可视化等。
 最新文章