Python 绘图竟然如此简单

261 阅读2分钟

49c05e2a69395b53828b5800523cb3d2.png

文 | 潮汐\

来源:Python 技术「ID: pythonall」

d35bb21e8552a1e88b031aa71e242f3a.png

今天的文章讲解如何利用 Pandas 来绘图,前面写过 matplotlib 相关文章,matplotlib   虽然功能强大,但是 matplotlib 相对而言较为底层,画图时步骤较为繁琐,比较麻烦,因为要画一张完整的图表,需要实现很多的基本组件,比如图像类型、刻度、标题、图例、注解等等。目前有很多的开源框架所实现的绘图功能是基于 matplotlib 的,pandas是其中之一,对于 pandas 数据分析而言,直接使用 pandas 本身实现的绘图方法比 matplotlib 更方便简单。关于更多 Pandas 的相关知识请参考官方文档

Pandas 绘制线状图

使用 Pandas 绘制线状图代码如下:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

def craw_line():
    ts = pd.Series(np.random.randn(1000), index=pd.date_range("1/1/2000", periods=1000))
    ts = ts.cumsum()
    ts.plot()
    plt.show()

if __name__ == '__main__':
    craw_line()

显示结果如下:

a051525bf02f50fb12a1434d100391b6.png

第二种绘画线状图方式如下:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

def craw_line1():
    ts = pd.Series(np.random.randn(1000), index=pd.date_range("1/1/2000", periods=1000))
    df = pd.DataFrame(np.random.randn(10004), index=ts.index, columns=list("ABCD"))
    df = df.cumsum()
    df.plot()
    plt.show()

if __name__ == '__main__':
    craw_line1()

线性图显示结果如下:

7de726ca8bc8723620a6624714c2b8cb.png

Pandas 绘制条形图

除了绘制默认的线状图,还能绘制其他图形样式,例如通过以下方法绘制条形图。绘图方法可以作为plot()的kind关键字参数提供。

绘制条形图1

通过如下方法绘制条形图1,详细代码如下:

def craw_bar():
    ts = pd.Series(np.random.randn(1000), index=pd.date_range("1/1/2000", periods=1000))
    df = pd.DataFrame(np.random.randn(10004), index=ts.index, columns=list("ABCD"))
    plt.figure()
    df.iloc[5].plot(kind="bar")
    plt.show()

if __name__ == '__main__':
    craw_bar()

结果图显示如下:

8d6ea81b323d256abd7ceebd9f41b6fb.png

绘制条形图2

通过如下方法绘制条形图2,详细代码如下:

def craw_bar1():
    #ts = pd.Series(np.random.randn(1000), index=pd.date_range("1/1/2000", periods=1000))
    df2 = pd.DataFrame(np.random.rand(104), columns=["a""b""c""d"])
    df2.plot.bar()
    plt.show()

if __name__ == '__main__':
    craw_bar1()

图形结果展示如下:

849979c591a4d5336c2ed479c8df0262.png

生成堆叠条形图

上面的条形图2可以生成堆叠条形图,加上stacked=True参数即可,详细代码如下:

def craw_bar2():
    df2 = pd.DataFrame(np.random.rand(104), columns=["a""b""c""d"])
    df2.plot.bar(stacked=True)
    plt.show()

if __name__ == '__main__':
    craw_bar2()

堆叠条形图展示如下:

9d601096d1ddf1d81e5368267c24df22.png

将以上条形图设置为水平条形图,详细代码如下:

def craw_bar3():
    df2 = pd.DataFrame(np.random.rand(104), columns=["a""b""c""d"])
    df2.plot.barh(stacked=True)
    plt.show()

if __name__ == '__main__':
    craw_bar3()

展示结果图如下:

36a486f1730bd4affaf1e0f99fa69d7d.png

总结

今天的文章就到这里啦,希望今天的文章对大家有帮助!更多关于 Pandas 绘制图形的方法咱们下集见分晓,希望自己进步的同时也对大家有更大的用处,咱们下期见!

PS: 公号内回复「Python」即可进入Python 新手学习交流群,一起 100 天计划!

老规矩,兄弟们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

ad5b3fe567460a5abd54d0288b2dd957.gif

代码获取方式****】

识别文末二维码,回复:python

1dd1468a785b8248ee1f960000b4c6ef.png