日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python matplotlib主要畫圖函數-統計方面.md

系統 1693 0

matplotlib簡介

matplotlib是python中用于繪制2D圖像,用于科學計算繪圖

基本繪圖函數說明和例子

  • barh(bottom, width, height=0.8, left=None, **kwargs)

    • 繪制矩形的邊界為:left,left+width,bottom,bottom+height
    • 參數:
      • bottom:標量或數組,是條形圖的y軸
      • width:條形圖的每一個條形的寬
      • height:條形的高度,標量序列,默認是0.8
      • left:條形的左邊的邊界,標量序列,一般是分類的類別
      • **kwargs:關鍵字參數,可以指定圖的格式,顏色等等
        • color:標量或者數組,條形的顏色
        • edgecolor:邊界的顏色、
        • linewidth:線寬,0就是不畫邊界
        • tick_label:string或者數組,默認是None,刻度的文
        • xerr:標量或者數組,默認是None,如果不是None那么會畫出誤差線
        • yerr:類似與xerr
        • align:{‘center’,‘edge’},如果是edge那么垂直條形圖條形會在刻度的左邊界,水平條形圖會對齊底對齊
        • log:默認是False,軸長度按照log來
    • 例子:
                        
                          import matplotlib.pyplot as plt
      import numpy as np
      import matplotlib.pyplot as plt
      
      
      plt.rcdefaults()
      fig, ax = plt.subplots()
      
      # Example data
      people = ('Tom', 'Dick', 'Harry', 'Slim', 'Jim')
      y_pos = np.arange(len(people))
      performance = 3 + 10 * np.random.rand(len(people))
      
      ax.barh(y_pos, performance, align='center',
              color='green')
      ax.set_yticks(y_pos) /指明y軸的刻度
      ax.set_yticklabels(people) /指明刻度對應的標簽
      ax.invert_yaxis()  # 按照從上往下讀的順序
      ax.set_xlabel('Performance')
      ax.set_title('How fast do you want to go today?')
      
      plt.show()
      
                        
                      
  • scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, **kwargs)

    • 繪制散點圖
    • 參數
      • x,y:array-like
      • s:點的大小,默認rcParams['lines.markersize']**2
      • c:color 序列,當是序列的時候,利用cmap,可以是RGB
      • marker:標記格式,默認'o'
      • cmap:默認None,如果color序列是floa數組的話就調用Colormap,None:rcimage.cmap
      • norm:標準化color序列,當且僅當color是float數組
      • alpha:透明度
      • edgecolor:邊界的顏色
    • 例子:
                  
                    import matplotlib.pyplot as plt
    import numpy.random as random
    fig,ax=plt.subplots()
    for color in ['red','green','blue']:
        n=100
        x,y=random.randn(2,n)
        scale=200.0*random.rand(n) #標記的大小
        plt.scatter(x,y,c=color,s=scale,alpha=0.5,edgecolor='none',label=color)
    
    ax.legend() #添加圖例
    ax.grid(True) #打開網格
    plt.show()
    
                  
                
  • 箱線圖boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None, bootstrap=None, usermedians=None, conf_intervals=None, meanline=None, showmeans=None, showcaps=None, showbox=None, showfliers=None, boxprops=None, labels=None, flierprops=None, medianprops=None, meanprops=None, capprops=None, whiskerprops=None, manage_xticks=True, autorange=False, zorder=None)

    • 繪制箱線圖,查看數據分布情況和判斷數據是否分布對稱
    • 參數
      • x:輸入數據,數組或者向量序列
      • notch:bool,默認是False,如果是True,那么就會生成帶有缺口的箱線圖,反映中位數的置信區間
      • sym:flier 點,如果是空字符串的話,那么不會顯示flier,如果是None,那么默認flier是‘b+’,如果想顯示更多flier的格式那么要使用flierprops關鍵字參數,flier: 離群點
      • vert:bool 默認True;如果是False,那么箱線圖是水平,True就是垂直
      • whis:float,String,sequence,默認是1.5;確定正常數據的范圍(如果是序列),string=‘range’那么強迫圖覆蓋最大值到最小;如果是float的話,那么邊界點是Q3+whis*(Q3-Q1)
      • bootstrap:int
      • manage_xticks:bool 默認是True;當是True的話,自動調整標簽和x軸范圍
      • meanline:bool 默認False,如果是True,把均值也畫出來
    • 例子:
                  
                    import matplotlib.pyplot as plt
    import numpy as np
    
    # Random test data
    np.random.seed(123)
    all_data = [np.random.normal(0, std, 100) for std in range(1, 4)]
    
    fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(9, 4))
    
    # rectangular box plot
    bplot1 = axes[0].boxplot(all_data,
                             vert=True,   # vertical box aligmnent
                             patch_artist=True)   # fill with color
    
    # notch shape box plot
    bplot2 = axes[1].boxplot(all_data,
                             notch=True,  # notch shape
                             vert=True,   # vertical box aligmnent
                             patch_artist=True)   # fill with color
    
    # fill with colors
    colors = ['pink', 'lightblue', 'lightgreen']
    for bplot in (bplot1, bplot2):
        for patch, color in zip(bplot['boxes'], colors):
            patch.set_facecolor(color)
    
    # adding horizontal grid lines
    for ax in axes:
        ax.yaxis.grid(True)
        ax.set_xlabel('xlabel')
        ax.set_ylabel('ylabel')
    
    # add x-tick labels
    plt.setp(axes, xticks=[y+1 for y in range(len(all_data))],
             xticklabels=['x1', 'x2', 'x3', 'x4'])
    
    plt.show()
    
                  
                
  • 步階圖step(x, y, *args, **kwargs)

    • 步長積累圖
    • 參數
      • x:數組,1-D,一般遞增
      • y:數組,1-D,一般遞增
      • where:{'pre','post','mid'}
        pre:默認,x[i]到x[i+1]之間有水平y[i+1]
        post:間隔有水平y[i]
        mid:那么y對應的點出現在間隔的中間
    • 例子:
                  
                    import numpy as np
    from numpy import ma
    import matplotlib.pyplot as plt
    
    x = np.arange(1, 7, 0.4)
    y0 = np.sin(x)
    y = y0.copy() + 2.5
    
    plt.step(x, y, label='pre (default)')
    
    y -= 0.5
    plt.step(x, y, where='mid', label='mid')
    
    y -= 0.5
    plt.step(x, y, where='post', label='post')
    
    y = ma.masked_where((y0 > -0.15) & (y0 < 0.15), y - 0.5)
    plt.step(x, y, label='masked (pre)')
    
    plt.legend()
    
    plt.xlim(0, 7)
    plt.ylim(-0.5, 4)
    
    plt.show()
    
                  
                
  • pyplot.stem( args, *kwargs)

    • 繪制莖葉圖
    • x:array-like
    • y:array-like
    • 可以利用linefmt,markerfmt,basefmt:指定baseline的格式,標記的格式,線條的格式
    • 返回(markerline,stemline,baseline)
    • 例子:
                  
                    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(0.1, 2*np.pi, 10)
    markerline, stemlines, baseline = plt.stem(x, np.cos(x), '-.')
    plt.setp(baseline, 'color', 'r', 'linewidth', 2)
    
    plt.show()
    
                  
                
  • pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, counterclock=True, wedgeprops=None, textprops=None, center=(0, 0), frame=False)

    • 繪制餅圖,反映部分占總體的比例
    • 參數
      • x:部分分別占總體的比例,都是百分數只是沒有百分號
      • explode:默認None,不為空那么長度肯定是len(x),如果其中一個不為0,其他為0說明該部分需要稍微離開總體一點,數值指定離開的比例
      • colors:None,或者color序列,序列這顏色會循環填充部分
      • labels:各部分的名稱
      • autopct:string或function或None,作為數值標注或者將數值輸出為指定格式
    • 例子:
                  
                    import matplotlib.pyplot as plt
    
    # Pie chart, where the slices will be ordered and plotted counter-clockwise:
    labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
    sizes = [15, 30, 45, 10]
    explode = (0, 0.1, 0, 0)  # only "explode" the 2nd slice (i.e. 'Hogs')
    
    fig1, ax1 = plt.subplots()
    ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
            shadow=True, startangle=90)
    ax1.axis('equal')  # Equal aspect ratio ensures that pie is drawn as a circle.
    
    plt.show()
    
                  
                
  • pyplot.hist(x, bins=None, range=None, normed=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, **kwargs)

    • 繪制直方圖
    • 參數
      • x:輸入值,數組或者n維數組序列
      • bins:面元個數 integer或者數組或者auto,如果是Integer,那么將會產生bins+1 個面元
        數組,那么面元時間可能不相等
      • range:面元的范圍,如果None,那么就是(x.min(),x.max())
      • normed:如果是True,那么繪制頻率分布直方圖的時候,就會自動高度=頻數/len(x)
      • cumulative:積累直方圖,默認是False,如果是True那么繪制積累直方圖
      • stacked:默認False,多個數據堆疊在一起,False:多個數據并排
      • histtype:{'bar','barstacked','step','stepfilled'}
        bar:條形
        barstacked:條形堆積圖
        step:生成一個線圖且沒有填充
        stepfilled:生成一個填充線圖
    • 例子:
                  
                    
    import numpy as np
    import matplotlib.pyplot as plt
    
    np.random.seed(0)
    
    mu = 200
    sigma = 25
    x = np.random.normal(mu, sigma, size=100)
    
    fig, (ax0, ax1) = plt.subplots(ncols=2, figsize=(8, 4))
    
    ax0.hist(x, 20, normed=1, histtype='stepfilled', facecolor='g', alpha=0.75)
    ax0.set_title('stepfilled')
    
    # Create a histogram by providing the bin edges (unequally spaced).
    bins = [100, 150, 180, 195, 205, 220, 250, 300]
    ax1.hist(x, bins, normed=1, histtype='bar', rwidth=0.8)
    ax1.set_title('unequal bins')
    
    fig.tight_layout()
    plt.show()
    
                  
                

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 揭西县| 鹤峰县| 金昌市| 德格县| 饶阳县| 萍乡市| 丹寨县| 富平县| 双峰县| 张家界市| 固镇县| 四平市| 油尖旺区| 米易县| 新野县| 新平| 资中县| 措勤县| 汪清县| 合阳县| 白水县| 巴马| 凌海市| 襄樊市| 宁武县| 永嘉县| 县级市| 佛学| 莒南县| 汕头市| 岚皋县| 萨嘎县| 贵港市| 黔西县| 绥阳县| 沾化县| 陵川县| 吉木乃县| 新宾| 黔西县| 榆树市|