• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Python數據科學入門(matplotlib)筆記04

    標簽: python

    Python數據科學入門學習筆記——Matloptlib

    什么是matloptlib
    matloptilib是一個Python包,用于2D繪圖,3D繪圖也可以安裝額外的包,強大流行,有很多擴展。

    1.Matplotlib Architecture

    • Backend:主要處理把圖像顯示到哪里和畫到哪里?
    • Artist:圖像顯示成什么樣? 大小位置等。
    • Scripting:pyplot,Python語法和API

    一、matplotlib 簡單繪圖示例

    import numpy as np
    import matplotlib.pyplot as plt
    a = [1,2,3]
    b = [4,5,6]
    # 如果不想每次都調用 plt.show() 來顯示圖像
    # 使用 %matplotlib inline   matplotlib 內置的魔法函數 
    #每次調用plot() 就會默認顯示圖像,不用再調用show()
    plt.plot(a,b,'r--')
    plt.show()

    圖一

    c = [2,5,8]
    d = [9,4,1]
    plt.plot(a,b,'r*',c,d,'b--')

    圖二

    t = np.arange(0.0,2.0,0.1)
    s = np.sin(t*np.pi)
    plt.plot(t,s,'y--',label='AA')
    plt.plot(t*2,s,'r*',label='BB')
    plt.xlabel('t')
    plt.ylabel('s')
    plt.title('Demo')
    plt.legend()    # 顯示示例label

    圖三

    二、subplot 子圖繪制

    import numpy as np
    import matplotlib.pyplot as plt
    t1 = np.arange(0.0,2.0,0.1)
    t2 = t1 * 2
    s = np.sin(t*np.pi)
    plt.subplot(2,1,1)  # 表示兩行一列 圖1
    plt.plot(t1,s,'y--',label='AA')
    
    plt.subplot(212)  # 不用逗號也可以,表示兩行一列 圖二
    plt.plot(t2,s,'r*',label='BB')
    plt.xlabel('t2')
    plt.ylabel('s')

    這里寫圖片描述

    subplots

    figure,ax = plt.subplots(2,2)   # 表示兩行兩列的畫布
    ax[0][0].plot(t1,s)
    ax[0][1].plot(t2,s)

    這里寫圖片描述

    三、Pandas繪圖之Series

    import numpy as np
    import pandas as pd
    from pandas import Series
    import matplotlib.pyplot as plt
    # cumsum() 表示累加的和
    s1 = Series(np.random.randn(10)).cumsum()
    s2 = Series(np.random.randn(10)).cumsum()
    # bar 表示 條形圖 默認 line 線形圖 
    # gird 是否顯示 格子
    s1.plot(kind='line',grid=True,label='AAA',title='Demo',style='--')  
    s2.plot(label='BBB')
    
    plt.legend()  # 顯示圖例
    plt.show()

    圖一

    sublots 子圖繪制

    fig, ax = plt.subplots(2,1)
    ax[0].plot(s1)  # 方法一
    s2.plot(ax=ax[1],kind='bar')   # 方法二
    

    這里寫圖片描述

    四、Pandas繪圖之DataFrame

    import numpy as np
    import pandas as pd
    from pandas import DataFrame
    import matplotlib.pyplot as plt
    df =  DataFrame(
        np.random.randint(1,10,40).reshape(10,4),
        columns=['A','B','C','D']   
    )
    df.head()
    A B C D
    0 3 9 8 5
    1 4 9 3 5
    2 6 6 6 5
    3 6 5 2 6
    4 3 6 5 6
    # barh 橫向 條形圖
    # stacked 是否堆疊
    df.plot(kind='bar',stacked='True')

    圖一

    # area 填充的圖
    # 默認對行進行 繪圖 可通過 df.T.plot() 轉置后改為對'列'繪圖
    df.plot(kind='area')

    圖二

    # iloc[5] 第五行
    df.iloc[5].plot()

    圖三

    # 一行行畫圖
    for i in df.index:
        df.iloc[i].plot(label=str(i))
    plt.legend()
    plt.show()

    圖四

    五、直方圖

    import numpy as np
    import pandas as pd
    from pandas import Series
    import matplotlib.pyplot as plt
    s = Series(np.random.randn(1000))
    # 頻數直方圖 分布圖  下圖的橫軸表示 某個范圍內的頻數
    # bins 表示分區數目  
    re = plt.hist(s,rwidth=0.9,bins=20,color='r')  

    圖一

    print(type(re))
    print('--------------------')
    print(len(re))  # 長度
    print('--------------------')
    print(re[0])    # 頻數
    print('--------------------')
    print(re[1])   # 范圍
    print('--------------------')
    print(re[2])   # 數據類型 和 (區間)數目
    <class 'tuple'>
    --------------------
    3
    --------------------
    [  1.   0.   4.   8.  15.  36.  45.  74. 128. 128. 125. 134. 115.  77.
      43.  36.  15.  11.   4.   1.]
    --------------------
    [-3.66698017 -3.31914432 -2.97130846 -2.62347261 -2.27563675 -1.92780089
     -1.57996504 -1.23212918 -0.88429333 -0.53645747 -0.18862162  0.15921424
      0.50705009  0.85488595  1.20272181  1.55055766  1.89839352  2.24622937
      2.59406523  2.94190108  3.28973694]
    --------------------
    <a list of 20 Patch objects>
    
    # 數據直接繪圖   對比上圖
    plt.plot(s)

    圖二

    # 密度圖
    s.plot(kind='kde')

    圖三

    版權聲明:本文為iflytop原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/iflytop/article/details/80588884

    智能推薦

    數據科學入門與實戰:Matplotlib繪圖hist

    直方圖就是可以看數據整體分布情況 調整柱子寬度 另一個例子 20個矩形...

    數據科學入門與實戰:Matplotlib繪圖DateFrame

    創建DateFrame,并繪圖 bar 按行畫圖 每行都畫 按列畫圖 可以這樣畫...

    數據科學入門與實戰:Matplotlib繪圖Series

    引入相關包 創建 繪圖s1 kind參數控制圖形的類型 gride顯示網格...

    數據科學入門與實戰:Matplotlib繪圖基礎一

    為什么用python畫圖 GUI太復雜 Excel太頭疼 python簡單免費 什么是matplotlib 一個Python包用于2D繪圖 還有很多擴展如:seaborn matplotlib架構 Backend:主要處理吧圖顯示到哪里和畫到哪里? Artist:圖像顯示成什么樣 最上層,Scripting:pyplot,python語法和API 推薦網站 matplotlib.org 官方網站 ...

    Python基礎+數據科學入門(六)類

    聲明:該博客參考深度之眼的視頻課程,如有侵權請聯系小編刪除博文,謝謝! 若總結有所失誤,還請見諒,并歡迎及時指出。 類-面向對象編程 1.1 類 三要素:類名、屬性、方法 1.1.1 類的命名 要有實際意義 采用駝峰命名法 1.1.2 類的屬性 1.1.3 類的方法 1.2 創建實例 1.2.1 創建實例 將實例賦值給對象,實例化過程中,傳入相應的參數 v = 類名 (必要的初始化參數) 1.2....

    猜你喜歡

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    精品国产乱码久久久久久蜜桃不卡