求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
Pandas 教程
1. Pandas 是什么
2.Pandas库下载和安装
3.Pandas Series入门教程
4.Pandas DataFrame入门教程
5.Pandas Panel三维数据结构
6.Python Pandas描述性统计
7.Pandas使用自定义函数
8.Pandas reindex重置索引
9.Pandas iteration遍历
10.Pandas sorting排序
11.Pandas去重函数:drop_duplicates()
12.Python Pandas处理字符串(方法详解)
13.Pandas设置数据显示格式
14.Pandas loc/iloc用法详解
15.Python Pandas统计函数
16.Python Pandas窗口函数
17.Python Pandas聚合函数
18.Python Pandas缺失值处理
19.Pandas groupby分组操作详解
20.Pandas merge合并操作
21.Pandas concat连接操作
22.Python Pandas时间序列
23.Pandas日期时间格式化
24.Padans Timedelta时间差
25.Pandas随机选择样本
26.Pandas数据重采样
27.Python Pandas分类对象
28.Python Pandas绘图
29.Python Pandas读取文件
30.Pandas csv读写文件
31.Pandas Excel读写操作
32.Pandas index操作索引
33.Pandas分层索引入门教程
34.Pandas执行SQL操作
35.Pandas和NumPy的比较
36.Pandas使用的注意事项
 

 
Python Pandas绘图教程(详解版)
89 次浏览
5次  

Pandas 在数据分析、数据可视化方面有着较为广泛的应用,Pandas 对 Matplotlib 绘图软件包的基础上单独封装了一个 plot() 接口,通过调用该接口可以实现常用的绘图操作。本节我们深入讲解一下 Pandas 的绘图操作。

Pandas 之所以能够实现了数据可视化,主要利用了 Matplotlib 库的 plot() 方法,它对 plot() 方法做了简单的封装,因此您可以直接调用该接口。下面看一组简单的示例:

1.import pandas as pd
2. import numpy as np
3. #创建包含时间序列的数据
4. df = pd.DataFrame(np.random.randn(8,4),index=pd.date_range('2/1/2020',periods=8), columns=list('ABCD'))
5. df.plot()

输结果图,如下所示:

图1:Pandas绘图

如上图所示,如果行索引中包含日期,Pandas 会自动调用 gct().autofmt_xdate() 来格式化 x 轴。

除了使用默认的线条绘图外,您还可以使用其他绘图方式,如下所示:

  • 柱状图:bar() 或 barh()
  • 直方图:hist()
  • 箱状箱:box()
  • 区域图:area()
  • 散点图:scatter()

通过关键字参数 kind 可以把上述方法传递给 plot()。


柱状图

创建一个柱状图,如下所示:

1.import pandas as pd
2. import numpy as np
3. df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d','e'])
4. #或使用df.plot(kind="bar")
5. df.plot.bar()

输出结果:

图2:Pandas绘制柱状图

通过设置参数 stacked=True 可以生成柱状堆叠图,示例如下:

1.import pandas as pd
2. import numpy as np
3. df = pd.DataFrame(np.random.rand(10,5),columns=['a','b','c','d','e'])
4. df.plot(kind="bar",stacked=True)
5. #或者使用df.plot.bar(stacked="True")

输出结果:

图3:Pandas绘制柱状图

如果要绘制水平柱状图,您可以使用以下方法:

1.import pandas as pd
2. import numpy as np
3. df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d'])
4. print(df)
5. df.plot.barh(stacked=True)

输出结果:

图4:水平柱状图

直方图

plot.hist() 可以实现绘制直方图,并且它还可以指定 bins(构成直方图的箱数)。

1.import pandas as pd
2. import numpy as np
3. df = pd.DataFrame({'A':np.random.randn(100)+2,'B':np.random.randn(100),'C':
4. np.random.randn(100)-2}, columns=['A', 'B', 'C'])
5. print(df)
6. #指定箱数为15
7. df.plot.hist(bins=15)

输出结果:

图5:绘制直方图

给每一列数据都绘制一个直方图,需要使以下方法:

1.import pandas as pd
2. import numpy as np
3. df = pd.DataFrame({'A':np.random.randn(100)+2,'B':np.random.randn(100),'C':
4. np.random.randn(100)-2,'D':np.random.randn(100)+3},columns=['A', 'B', 'C','D'])
5. #使用diff绘制
6. df.diff().hist(color="r",alpha=0.5,bins=15)

输出结果:

图6:直方图绘制


箱型图

通过调用 Series.box.plot() 、DataFrame.box.plot() 或者 DataFrame.boxplot() 方法来绘制箱型图,它将每一列数据的分布情况,以可视化的图像展现出来。

1.import pandas as pd
2. import numpy as np
3. df = pd.DataFrame(np.random.rand(10, 4), columns=['A', 'B', 'C', 'D'])
4. df.plot.box()

输出结果:

图7:绘制箱型图


区域图

您可以使用 Series.plot.area() 或 DataFrame.plot.area() 方法来绘制区域图。

1.import pandas as pd
2. import numpy as np
3.  
4. df = pd.DataFrame(np.random.rand(5, 4), columns=['a', 'b', 'c', 'd'])
5. df.plot.area()

输出结果:

图8:绘制区域图


散点图

使用 DataFrame.plot.scatter() 方法来绘制散点图,如下所示:

1.import pandas as pd
2. import numpy as np
3. df = pd.DataFrame(np.random.rand(30, 4), columns=['a', 'b', 'c', 'd'])
4. df.plot.scatter(x='a',y='b')

输出结果:

图9:绘制散点图


饼状图

饼状图可以通过 DataFrame.plot.pie() 方法来绘制。示例如下:

1.import pandas as pd
2. import numpy as np
3. df = pd.DataFrame(3 * np.random.rand(4), index=['go', 'java', 'c++', 'c'], columns=['L'])
4. df.plot.pie(subplots=True)

输出结果:

图10:Pandas绘制饼状图


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



89 次浏览
5次