91aaa在线国内观看,亚洲AV午夜福利精品一区二区,久久偷拍人视频,久久播这里有免费视播

<strong id="fvuar"></strong>

  • <sub id="fvuar"><dl id="fvuar"><em id="fvuar"></em></dl></sub>

    1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

      手機站
      千鋒教育

      千鋒學(xué)習站 | 隨時隨地免費學(xué)

      千鋒教育

      掃一掃進入千鋒手機站

      領(lǐng)取全套視頻
      千鋒教育

      關(guān)注千鋒學(xué)習站小程序
      隨時隨地免費學(xué)習課程

      當前位置:首頁  >  技術(shù)干貨  > 數(shù)據(jù)分析之繪圖和可視化

      數(shù)據(jù)分析之繪圖和可視化

      來源:千鋒教育
      發(fā)布人:wjy
      時間: 2022-08-12 15:04:55 1660287895

      hi~~~ 我是宋宋,今天給大家分享的是數(shù)據(jù)分析的可視化部分。

      ### 簡介

      信息可視化(也叫繪圖)是數(shù)據(jù)分析中最重要的?作之?。它可能是探索過程的?部分,例如,幫助我們找出異常值、必要的數(shù)據(jù)轉(zhuǎn)換、得出有關(guān)模型的idea等。

      其實做 Python的數(shù)據(jù)可視化,可以使用的庫分別是 Matplotlib 、Seaborn 、Bokeh、 Plotly 、Pyecharts等。

      Matplotlib是Python數(shù)據(jù)可視化庫中的泰斗,它已經(jīng)成為python中公認的數(shù)據(jù)可視化工具,通過Matplotlib可以很方便的設(shè)計和輸出二維以及三維的數(shù)據(jù),其提供了常規(guī)的笛卡爾坐標,極坐標,球坐標,三維坐標等,其輸出的圖片質(zhì)量也達到了科技論文中的印刷質(zhì)量,日常的基本繪圖更不在話下。

      Matplotlib 是一個 Python 的 2D繪圖庫,通過 Matplotlib,開發(fā)者可以僅需要幾行代碼,便可以生成繪圖,直方圖,功率譜,條形圖,錯誤圖,散點圖等。

      優(yōu)勢:

      > (1)能將數(shù)據(jù)進行可視化,更直觀的呈現(xiàn)
      >
      > (2)使數(shù)據(jù)更加客觀,更具說服力

      在分享Matplotlib之前我們先了解以下幾個概念:

      **畫板、畫紙的概念**

      image01

      我們知道畫畫時需要畫板和畫紙。在matplotlib中也是一個道理。

      圖形在畫板(figure)中繪制完成,而畫板又由不同的畫布(紙)(axes)構(gòu)成,具體的圖形構(gòu)建時要指明畫板和畫布,否則默認一畫板一畫布。

      ##### 畫板(figure)

      畫板存在的意義:

      - 控制圖像的比例情況(大?。?br />- 保存圖像

      創(chuàng)建一個畫板

      > plt.figure(
      > num=None, 用于指定在畫板上,放幾個畫布
      > figsize=None, (寬度, 高度)
      > dpi=None, 圖像的分辨率
      > facecolor=None, 背景色
      > edgecolor=None, 邊界顏色
      > frameon=True,
      > FigureClass,
      > clear=False,
      > **kwargs,
      > linewidth
      > )

      ##### 畫布(axes)

      一個坐標系就是一個畫布,就是一個圖,一個畫板上可以有多個坐標系

      畫布的創(chuàng)建
      畫布要創(chuàng)建在畫板上
      fig.add_subplot(nrows, ncols, index)
      nrows將畫板分為幾行,ncols將畫板分為幾列,index選取使用哪一個被劃分的畫板

      > add_subplot(nrows, ncols, index, \**kwargs)
      > add_subplot(pos, **kwargs)
      > add_subplot(ax)
      > add_subplot()

      畫板與畫布的關(guān)系

      屏幕快照 2021-08-24 下午5.10.29

      matplotlib圖標的基本組成

      - 畫板figure 呈現(xiàn)出來的坐標系
      - 繪圖區(qū)域axes 【畫布】
      - x軸和y軸的水平垂直軸線 以及 軸標簽
      - 軸線上的刻度 以及 對應(yīng)的刻度標簽
      - 畫布標題
      - 圖例

      ### 如何使用繪圖包Matplotlib?

      matplotlib的基本要素:

      ```
      # 導(dǎo)入pyplot和matplotlib模塊

      import matplotlib as mpl

      from matplotlib import pyplot as plt

      %matplotlib inline # 繪制的圖片在當前文檔顯示
      ```

      默認一畫板一畫紙,我們也可以自己定義畫板figure和畫布axes,添加順序是:

      > 1. 定義一個figure對象
      > 2. 給figure對象添加subplot

      比如:

      ```python
      import numpy as np
      import matplotlib as mpl
      from matplotlib import pyplot as plt

      %matplotlib inline

      fig = plt.figure()
      # 指定切分區(qū)域的位置
      ax1 = fig.add_subplot(2,2,1)
      ax2 = fig.add_subplot(2,2,2)
      ax3 = fig.add_subplot(2,2,3)
      ax4 = fig.add_subplot(2,2,4)

      random_arr = np.random.randn(100)
      plt.plot(random_arr)

      plt.show()
      ```

      屏幕快照 2021-08-24 下午4.22.55

      大家可以發(fā)現(xiàn)在最后一個畫布上顯示了圖像,但是前面三個沒有顯示出來,原因是此時的plt是有上下文的,所謂上下文就是在ax2和ax3之間使用plt.plot()進行繪制則繪制的圖形是ax2這個畫紙的。即在哪個畫紙下面執(zhí)行畫圖就會繪制在誰上面,前提是下一個畫布創(chuàng)建之前。所以如果在ax2和ax4上畫圖也可以改成如下代碼,

      ```
      import numpy as np
      import matplotlib as mpl
      from matplotlib import pyplot as plt

      %matplotlib inline

      fig = plt.figure()
      random_arr = np.random.randn(100)
      # 指定切分區(qū)域的位置
      ax1 = fig.add_subplot(2,2,1)
      ax2 = fig.add_subplot(2,2,2)
      plt.plot(random_arr)
      ax3 = fig.add_subplot(2,2,3)
      ax4 = fig.add_subplot(2,2,4)
      plt.plot(random_arr)
      plt.show()
      ```

      屏幕快照 2021-08-24 下午4.28.28

      注意: 如果繪圖區(qū)域顯示的圖像比較小,可以結(jié)合參數(shù)figsize=(寬度,高度)進行設(shè)定。

      當然也可以使用畫布axes對象進行繪制,比如下面代碼:

      ```
      # 省略導(dǎo)入,同上
      ...
      fig = plt.figure(figsize=(11,7)) # 畫板的大小 設(shè)置的橫向和縱向的值 單位是英寸 可以表示水平和垂直的縮放
      random_arr = np.random.randn(100)
      # 指定切分區(qū)域的位置
      ax1 = fig.add_subplot(2,2,1)
      ax2 = fig.add_subplot(2,2,2)
      ax3 = fig.add_subplot(2,2,3)
      ax4 = fig.add_subplot(2,2,4)
      random_arr = np.random.randn(100)
      ax1.plot(random_arr)
      random_arr = np.random.randn(100)
      ax2.plot(random_arr)
      random_arr = np.random.randn(100)
      ax3.plot(random_arr)
      random_arr = np.random.randn(100)
      ax4.plot(random_arr)
      plt.show()
      ```

      屏幕快照 2021-08-24 下午5.08.10

      其中的add_subplot(self, *args, **kwargs) 表示向figure添加一個Axes作為一subplot布局的一部分。

      add_subplot()方法本質(zhì)上做了兩件事:

      1. 將整個Figure區(qū)域劃分為Row * col的網(wǎng)格;
      2. 在網(wǎng)格的指定格子(索引號)中創(chuàng)建一個Axes

      add_subplot()網(wǎng)格有兩種定義方式:

      第一種是用3個參數(shù),分別代表網(wǎng)格的,行數(shù) nrows, 列數(shù) ncols, 索引號index。它們都是位置參數(shù)。這種是第1種調(diào)用簽名形式。

      第二種是用一個3位數(shù)的整數(shù),如,224,第一個2表示2行,第二個2表示2列,第3位上的4表示第4個格子。這就是第二種調(diào)用簽名形式,pos為224,也是位置參數(shù)。
      比如說創(chuàng)建一個2行2列的布局,繪圖在第四個axes,注意:2*2的網(wǎng)格是虛擬的,起一個定位的作用

      屏幕快照 2021-08-24 下午5.14.04

      **小結(jié):**

      1. figure就是一個矩形容器(頂層容器),可以再劃分為小方格,每個方格就是一個subplot,即子繪圖區(qū)。
      2. 一個圖形中可以有多個subplot,這些subplot又可以被看作一個整體,有一些屬性如整個subplot的位置、內(nèi)部(單個subplot之間)的間距等,這些屬性保存在figure.SubplotParams類中。可以通過Figure的subplotpars參數(shù)來修改這些屬性。
      3. 子圖使用了subplot,而不是subfigure。fiugre僅是一個矩形容器,而plot則是具體的圖形元素了,所以subplot會自動創(chuàng)建一個Axes,這個Axes是屬于特定subplot的。

      ### 畫布的設(shè)置

      創(chuàng)建好了畫布之后,我們就可以對畫布進行設(shè)置,比如添加標題、坐標軸、設(shè)置坐標軸刻度、圖例等

      #### artist操作

      **設(shè)置畫布標題**

      > axes.set_title(label)
      > label,
      > fontdict=None,
      > loc=None,
      > pad=None,
      > *,
      > y=None,
      > **kwargs,
      > )
      > 可以設(shè)置標題的位置,樣式

      **設(shè)置坐標軸標簽**

      > axes.set_xlabel()
      > axes.set_ylabel(
      > ylabel, # 坐標軸標簽名
      > fontdict=None, # 字體大小
      > labelpad=None,
      > *,
      > loc=None, # 位置{'left', 'center', 'right'}
      > **kwargs,
      >
      > rotation, # 旋轉(zhuǎn)
      > color, # 顏色
      > )

      **開啟和關(guān)閉坐標軸**

      > axes.set_axis_on()
      > axes.set_axis_off()

      **設(shè)置坐標軸范圍【相當于只看一部分】**

      > axes.axis([xmin, xmax, ymin, ymax])
      >
      > axes.set_xlim(min,max)
      > axes.set_ylim(min,max)

      **設(shè)置坐標軸刻度**

      > axes.set_xticks([float, float])
      > axes.set_yticks(
      > ticks=[float, float], 刻度的位置會根據(jù)數(shù)據(jù)的范圍以及數(shù)據(jù)本身設(shè)置刻度的位置
      > labels=['',''],
      > rotation,
      > fontsize,
      > color
      > )

      **設(shè)置網(wǎng)格**

      > axes.grid(b=None, which='major', axis='both', **kwargs)
      > axes.grid(True
      > )

      **設(shè)置圖例**
      在繪圖操作中設(shè)置label參數(shù),再調(diào)用圖例顯示方法

      在圖例方法中傳入字符串列表

      > axes.legend(handles, labels, loc)
      > ** loc:圖例位置
      > ** labels:圖例標簽名稱
      > ** handles:

      > =============== =============
      > Location String Location Code
      > =============== =============
      > 'best' 0
      >
      > 'upper right' 1
      > 'upper left' 2
      > 'lower left' 3
      > 'lower right' 4
      > 'right' 5
      > 'center left' 6
      > 'center right' 7
      > 'lower center' 8
      > 'upper center' 9
      > 'center' 10
      > =============== =============

      案例:

      ```

      fig = plt.figure(figsize=(10,5))
      x = np.linspace(0, np.pi * 2, 100)
      y = np.sin(x)
      ax1 = fig.add_subplot(1,2,1)
      ax1.set_title('正余弦波', fontsize=20, fontweight='bold', horizontalalignment='left', verticalalignment='bottom') # 默認是不支持漢字的
      ax1.plot(x, y)
      ax1.plot(x, np.cos(x))
      ax1.legend(['sin(x)', 'cos(x)'],loc='upper right')
      ax2 = fig.add_subplot(1,2,2)

      random_arr = np.random.randn(100)
      ax2.plot(random_arr)
      ax2.set_title('標準正態(tài)分布')
      ```

      設(shè)置的標題是中文的,因為要想支持中文可以添加如下代碼在執(zhí)行之前:

      ```
      plt.rcParams['font.sans-serif'] = ['Simhei']
      # 中文情況下 負號顯示會有異常 所以還需要設(shè)置負號的操作
      # 'axes.unicode_minus'
      plt.rcParams['axes.unicode_minus'] = False
      # 設(shè)置的是點的標記 默認是就是None 不顯示
      plt.rcParams['lines.marker'] = 'None'
      ```

      屏幕快照 2021-08-24 下午5.42.10

      當然上面的操作也可以在上下文上完成,結(jié)果是一樣的。只不過去掉了set_title()中的set_直接使用plt繪制。其他屬性也是一樣的。即:

      ```
      fig = plt.figure(figsize=(10,5))
      x = np.linspace(0, np.pi * 2, 100)
      y = np.sin(x)
      ax1 = fig.add_subplot(1,2,1)
      plt.title('正余弦波', fontsize=20, fontweight='bold', horizontalalignment='left', verticalalignment='bottom') # 默認是不支持漢字的
      plt.plot(x, y)
      plt.plot(x, np.cos(x))
      plt.legend(['sin(x)', 'cos(x)'],loc='upper right')
      ax2 = fig.add_subplot(1,2,2)

      random_arr = np.random.randn(100)
      plt.plot(random_arr)
      plt.title('標準正態(tài)分布')
      ```

       

      tags:
      聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
      10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
      請您保持通訊暢通,專屬學(xué)習老師24小時內(nèi)將與您1V1溝通
      免費領(lǐng)取
      今日已有369人領(lǐng)取成功
      劉同學(xué) 138****2860 剛剛成功領(lǐng)取
      王同學(xué) 131****2015 剛剛成功領(lǐng)取
      張同學(xué) 133****4652 剛剛成功領(lǐng)取
      李同學(xué) 135****8607 剛剛成功領(lǐng)取
      楊同學(xué) 132****5667 剛剛成功領(lǐng)取
      岳同學(xué) 134****6652 剛剛成功領(lǐng)取
      梁同學(xué) 157****2950 剛剛成功領(lǐng)取
      劉同學(xué) 189****1015 剛剛成功領(lǐng)取
      張同學(xué) 155****4678 剛剛成功領(lǐng)取
      鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
      董同學(xué) 138****2867 剛剛成功領(lǐng)取
      周同學(xué) 136****3602 剛剛成功領(lǐng)取
      相關(guān)推薦HOT
      反欺詐中所用到的機器學(xué)習模型有哪些?

      一、邏輯回歸模型邏輯回歸是一種常用的分類模型,特別適合處理二分類問題。在反欺詐中,邏輯回歸可以用來預(yù)測一筆交易是否是欺詐。二、決策樹模...詳情>>

      2023-10-14 14:09:29
      軟件開發(fā)管理流程中會出現(xiàn)哪些問題?

      一、需求不清需求不明確是導(dǎo)致項目失敗的主要原因之一。如果需求沒有清晰定義,開發(fā)人員可能會開發(fā)出不符合用戶期望的產(chǎn)品。二、通信不足溝通問...詳情>>

      2023-10-14 13:43:21
      軟件定制開發(fā)中的敏捷開發(fā)是什么?

      軟件定制開發(fā)中的敏捷開發(fā)是什么軟件定制開發(fā)中的敏捷開發(fā),從宏觀上看,是一個高度關(guān)注人員交互,持續(xù)開發(fā)與交付,接受需求變更并適應(yīng)環(huán)境變化...詳情>>

      2023-10-14 13:24:57
      什么是PlatformIo?

      PlatformIO是什么PlatformIO是一個全面的物聯(lián)網(wǎng)開發(fā)平臺,它為眾多硬件平臺和開發(fā)環(huán)境提供了統(tǒng)一的工作流程,有效簡化了開發(fā)過程,并能兼容各種...詳情>>

      2023-10-14 12:55:06
      云快照與自動備份有什么區(qū)別?

      1、定義和目標不同云快照的主要目標是提供一種快速恢復(fù)數(shù)據(jù)的方法,它只記錄在快照時間點后的數(shù)據(jù)變化,而不是所有的數(shù)據(jù)。自動備份的主要目標...詳情>>

      2023-10-14 12:48:59