一般情况下,通过数据绘图都会使用 Matplotlib 库,当然本篇文章的内容也和它有关。在 Pandas 库中,有一些封装了 Matplotlib 的方法可以更简单地通过处理后的数据来绘制图表,当然要先导入 Matplotlib 库才能使用。
不管是 Series 还是 DataFrame 类型的数据,调用的方法都是一样的,只是后者要多处理一下。
线形图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 随机生成正态分布的 5 组数据,每组 5 个值
df = pd.DataFrame(np.random.randn(5,5), columns=list('ABCDE'))
# 绘制
df.plot()
# 显示
plt.show()
如图:
plot() 默认绘制 折线图(kind=‘line’),若要绘制其它图形,就要添加 kind 参数,以下是 kind 参数的选项:
kind 选项 | 图形 |
---|---|
line | 折线图( 默认 ) |
scatter | 散点图 |
bar | 条形图 |
barh | 横向条形图 |
hist | 柱状图 |
pie | 饼状图 |
box | 箱线图 |
kde | 概率密度分布图 |
density | 类似于 kde |
area | 区域块图 |
hexbin | 六边形分箱图 |
当然也可以采用 plot.scatter()、plot.bar() 这样的形式。
散点图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.DataFrame(np.random.randn(25,5), columns=list('ABCDE'))
# 以 A 组的数据作为 x 轴,以 B 组的数据作为 y 轴,生成散点图
df.plot(x='A', y='E', kind='scatter')
plt.show()
如图:
条形图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.DataFrame(np.random.randn(5, 5), columns=list('ABCDE'))
df.plot(kind='bar')
plt.show()
把 5 个部分全部绘制出来了,如图:
若是要生成堆积条形图:
df.plot(kind='bar', stacked=True)
plt.show()
如图:
若要只绘制一个组,除了可以在 DataFrame 的操作上进行选择,也可以这样:
df.plot(y='C', kind='bar')
plt.show()
如图:
饼状图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 生成 3 组随机数,每组 3 个数据
df = pd.DataFrame(np.random.rand(3, 3), index=list('abc'), columns=list('ABC'))
df.plot(kind='pie', subplots=True, figsize=(12,6))
plt.show()
如图:
还有一些参数的作用( 列举部分 ):
参数 | 说明 |
---|---|
x | 标签或位置 |
y | 标签,位置或标签列表( 允许绘制一列与另一列 ) |
subplots | 为每列制作单独的子图 |
figsize | 以英寸为单位的元组(宽度,高度) |
title | 标题 |
style | 线条样式 |