zoukankan      html  css  js  c++  java
  • pandas画图-【老鱼学pandas】

    本节主要讲述如何把pandas中的数据用图表的方式显示在屏幕上,有点类似在excel中显示图表。

    安装matplotlib

    为了能够显示图表,首先需要安装matplotlib库,安装方法如下:

    pip3 install matplotlib
    

    显示图表

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    # 产生1000个随机数
    data = pd.Series(np.random.rand(1000))
    # 画图表
    data.plot()
    # 显示图表
    plt.show()
    
    

    在上面的代码中,我们首先创建1000个随机数序列点,然后对这1000个点进行画图表,最后调用plt.show()显示图表。

    显示的结果为:

    在matplotlib中,如果想要显示图表,需要使用plt.plot()函数,但在pandas中,我们只要对序列数据调用plot()函数就能显示其所拥有的数据,是不是很简单。

    显示矩阵数据

    显示矩阵中的数据,就会把每列当做一个数据序列进行显示,例如:

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    # 产生1000个4列正态分布的随机数
    data = pd.DataFrame(np.random.randn(1000, 4))
    # 对其中的数据进行累加,目的是为了能够使例子中显示的曲线有上升波动效果
    data = data.cumsum()
    # 打印出前几行的数据,方便我们调试其中的数据值
    print(data.head())
    # 画图表
    data.plot()
    # 显示图表
    plt.show()
    

    其中显示的头几行数据值为:

              0         1         2         3
    0  0.596323  0.195563  0.037300  0.900385
    1  0.186813  2.217155  0.516096  0.623348
    2  1.147338  2.362926  2.597531  0.960079
    3  1.571033  2.910459  0.947950  0.609487
    4  1.783988  3.702685 -0.358119  2.341726
    

    显示的图表为:

    还是挺漂亮的图表,有点像股市走势图。:)
    只是其中的0,1,2,3这几个列名不大好看,我们可以修改产生数据集中的列名,这样,在显示图表时就能按照数据集中的列名进行显示了。
    比如,我们想修改数据集中的列名显示为A、B、C、D:

    data = pd.DataFrame(np.random.randn(1000, 4), columns=list("ABCD"))
    

    这样显示为:

    显示散点图

    可以用scatter()函数来显示散点图,但其使用方式跟显示图表的有点不一样,主要是此函数是在plot属性中的方法,需要注意一下:

    data.plot.scatter(x='A', y='B')
    

    完整的代码为:

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    # 产生1000个4列正态分布的随机数
    data = pd.DataFrame(np.random.randn(1000, 4), columns=list("ABCD"))
    # 打印出前几行的数据,方便我们调试其中的数据值
    print(data.head())
    # 显示散点图
    data.plot.scatter(x='A', y='B')
    # 显示图
    plt.show()
    
    

    显示图为:

    在scatter函数中还可以添加额外的属性,比如可以通过color来指定颜色,通过label来指定标签,我们来看一下:

    data.plot.scatter(x='A', y='B', color='DarkBlue', label="Class 1")
    

    显示的图为:

    如果我们想要在一张图中再画一下另一个散点图,比如,在上面这个例子中,我们已经显示了横坐标是A纵坐标是B的散点图,现在我们还想把横坐标是A,纵坐标是C的数据也显示在其中,该怎么进行呢?

    # 显示散点图
    pic1 = data.plot.scatter(x='A', y='B', color='DarkBlue', label="Class 1")
    data.plot.scatter(x='A', y='C', color='DarkGreen', label='Class2', ax=pic1)
    # 显示图
    plt.show()
    

    图片显示为:

    更多图形

    更多的图形还有:条形图, 直方图, 盒须图, 饼图等,相应的函数名有:bar, hist, box, kde, area, hexbin, pie等(前面不是一一对应的,有兴趣的读者可以自己去试试看。)

  • 相关阅读:
    神仙题1.0
    一些小技巧(持续更新。。)
    模板(持续更新中。。)
    「CTS2019 | CTSC2019」氪金手游(容斥+概率计数)
    Emacs配置
    AGC034E Complete Compres(dp)
    「清华集训 2017」榕树之心(换根dp)
    [NOI2018]冒泡排序 (卡特兰数)
    「清华集训 2017」小 Y 和二叉树 (贪心)
    「雅礼集训 2018 Day1」图 (dp套dp)
  • 原文地址:https://www.cnblogs.com/dreampursuer/p/7849577.html
Copyright © 2011-2022 走看看