Pandas是Python中一个非常强大的数据处理和分析库。它提供了易于使用的数据结构和函数,特别适合处理结构化数据。事实上,Pandas自带了绘图功能,本文将介绍如何使用Pandas进行常用的绘图操作。
1.折线图
import pandas as pd
df = pd.DataFrame({'length': [1.5, 0.5, 1.2, 0.9, 3],
'width': [0.7, 0.2, 0.15, 0.2, 1.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绘图非常简单。也就是说,在处理数据时,可以随时进行作图,从而更方便地呈现数据。