我的Python分析成長之路10

  • 2020 年 1 月 22 日
  • 筆記

matplot數據可視化基礎

製作提供信息的可視化(有時稱作繪圖)是數據分析中最重要任務之一。

1.圖片(畫布)與子圖

 plt.figure :創建一張空白的圖片,可以指定圖片的大小、像素。

    figure.add_subplot:添加子圖,可以指定子圖的行數、列數和選中圖片的編號。

    如果使用plt.subplots(),它創建了一張圖片,然後返回包含了已生成子圖對象的Numpy數組

    plt.subplots選型:

          nrow:子圖的行數

          ncols:子圖的列數

          sharex:所有子圖使用相同的x軸刻度

          sharey:所有子圖使用相同的y軸刻度

 1 import numpy as np   2 import matplotlib.pyplot as plt   3 plt.rcParams["font.sans-serif"] = "SimHei"  #設置中文顯示   4 plt.rcParams["axes.unicode_minus"] = False     #設置正常符號   5 #沒有子圖的繪圖   6 x = np.arange(0,1,0.01)   7 y = x**2   8 y2 = x**4   9 plt.plot(x,y)  10 plt.plot(x,y2)  11 plt.show()  12 #有子圖的繪製方法  13 fig = plt.figure(figsize=(8,5))  14 ax1 = fig.add_subplot(2,1,1)  15 ax1.plot(x,y)  16 ax2 = fig.add_subplot(2,1,2)  17 ax2.plot(x,y2)  18 plt.show()  19 #用plt.subplots方法  20 fig,axes = plt.subplots(2,1,sharex=True)  21 axes[0].plot(x,y)  22 axes[1].plot(x,y2)  23 plt.show()

2.添加各類標籤和圖例的常用函數

plt.title  為當前圖形添加標題,可以指定標題的名稱、位置、顏色、大小等參數

    plt.xlabel  為當前圖形添加x軸名稱,可以指定位置、顏色、大小等參數

    plt.ylabel:為當前圖形添加y軸名稱,可以指定位置、顏色、字體大小等參數

    plt.xlim:指定當前圖形x軸的範圍,只能確定一個數值區間,而無法使用字符串標識

    plt.ylim:指定當前圖形y軸的範圍,只能確定一個數值區間,而無法使用字符串標識

    plt. xticks:指定x軸數目與取值

    plt.yticks:指定y軸刻度的數目與取值

    plt.legend:根據當前圖形的圖例,可以指定圖例的大小、位置、標籤。

    plt.savefig("filename"):保存圖片

    text/arrow/annote方法添加註釋和文本

 1 import numpy as np   2 import matplotlib.pyplot as plt   3 plt.rcParams["font.sans-serif"] = "SimHei"   4 plt.rcParams["axes.unicode_minus"] = False   5 x = np.arange(0,1,0.01)   6 y1 = x**2   7 y2 = x**4   8 plt.plot(x,y1,"g--")   9 plt.plot(x,y2,"b-")  10 plt.xlabel("x")  #設置x軸類標  11 plt.ylabel("y")  #設置y軸類標  12 plt.xlim([0,1])  #設置x範圍  13 plt.ylim([0,1])    #設置y範圍  14 plt.title("x**2和x**4函數")  #添加標題  15 plt.legend(["Y1","Y2"],loc="best")   #  16 plt.show()

View Code

3.設置pyplot的rc參數

  lines.linestyle:線條樣式

      lines.linewidth:線條寬度

    lines.marker:線條上的點的形狀

    lines.markersize:點的大小

4.分析特徵間的相互關係

1.柱狀圖:

        plot.bar():繪製垂直方向上的柱狀圖

        plot.barh():繪製水平方向上的柱狀圖

 1 import matplotlib.pyplot as plt   2 import pandas as pd   3 fig,axes = plt.subplots(2,1)   4 data = pd.Series(np.random.rand(16),index=list("abcdefghijklmnop"))   5 data.plot.bar(ax=axes[0],color='k')   6 data.plot.barh(ax=axes[1],color="r")   7 plt.show()   8 df = pd.DataFrame(np.random.rand(6,4),index=["one","two","three","four","five","six"],   9                   columns=pd.Index(["a","b","c","d"],name="Genus"))  10 df.plot.bar()  11 df.plot.barh(stacked=True)  12 plt.show()

2.直方圖和密度圖:

        直方圖是一種條形圖,用於給出值頻率的離散顯示。數據被分隔成離散的,均勻間隔的箱,並且繪製每個箱中數據點的數量.一般用橫軸表示        數據類型,用縱軸表示數量或者佔比。

        plot.hist()

        密度圖是一種與直方圖相關的圖表類型,它通過計算可能產生觀測數據的連續概率分佈估計而產生的。 密度圖也稱為內核密度估計圖            (KED)

        plot.density()

        seabon.distplot()可以繪製直方圖和連續密度估計

1 t seaborn as sns  2 import pandas as pd  3 import matplotlib.pyplot as plt  4 data1 = pd.Series(np.random.normal(0,1,size=200))  5 data2 = pd.Series(np.random.normal(10,2,size=200))  6 data3 = pd.Series(np.concatenate([data1,data2]))  7 # print(data3)  8 sns.distplot(data3,bins=100,color="k")  9 plt.show()

 3.散點圖

        散點圖,又稱散點分佈圖,是一個以一個特徵為橫坐標,以另一個特徵為縱坐標,利用坐標點的分佈狀態反映特徵間的統計關係的一陣圖形。主要用於分析特徵間的相互關係,散點圖可以提供兩類關鍵信息。1.特徵之間是否存在數值或數量之間的關聯趨勢,關聯趨勢是線性還是非線性的。2.如果從某一個點或者某幾個點偏離大多數點,則這些點就是離群值,從而分析這些離群值是否在建模分析中產生很大的關係。散點圖通過散點的疏密程度和變化趨勢表示兩個特徵的數量關係。

    plt.scatter(x,y,s=None,c=None,marker=None)  c:代表顏色,marker:繪製點的類型

    seaborn.pairplot(data,diag_kind="kde",{「plot_kws」:0.2}) 可以支持在對角線上放置每個變量的直方圖或密度估計圖

    4.折線圖

    折線圖是一種將數據點按照順序連接起來的圖形。查看因變量y隨自變量x改變的趨勢,最適合於顯示隨時間而變化的連續數據.

       plt.plot()  

5.餅圖  

        餅圖是將各項大小與各項總和的比例顯示在一張「餅」上,以「餅」的大小確定所佔的比例。

        plt.pie(x,explode,labels,autopct,octdistance,labeldistance,radius)

        explode:設定各項距離圓心n個半徑

        label:餅圖的標籤

        autupct:指定數值的顯示方式

    6.箱型圖

        箱型圖也稱箱須圖,其繪製需要常用的統計量,能提供有關數據位置和分散情況的關鍵信息,尤其在比較不同特徵時,更可表現其分散程度         差異。箱型圖利用數據中的5個統計量(最小值、下四分位數、中位數、上四分位數、和最大值)來描述數據。

        plt.boxplot(x,menline) meanline:是否顯示中值