Python 繪圖,我只用 Matplotlib

2021-01-07 CSDN

散點圖

散點圖顯示兩組數據的值,如圖1-1所示。每個點的坐標位置由變量的值決定,並由一組不連接的點完成,用於觀察兩種變量的相關性。例如,身高—體重、溫度—維度。

圖1-1 散點圖示例

使用Matplotlib的scatter()函數繪製散點圖,其中x和y是相同長度的數組序列。scatter()函數的一般用法為:

主要參數說明如下:

x,y:數組。s:散點圖中點的大小,可選。c:散點圖中點的顏色,可選。 marker:散點圖的形狀,可選。alpha:表示透明度,在 0~1 取值,可選。linewidths:表示線條粗細,可選。

示例:繪製身高—體重的散點圖

運行腳本輸出如圖1-2所示的圖形。

圖1-2 基本的散點圖

散點圖主要演示兩個變量的相關性:正相關、負相關、不相關。

示例:顯示y=2x+1的圖形

Matplotlib中最基礎的模塊是Pyplot, 下面從最簡單的線圖開始講解。例如,有一組數據,還有一個擬合模型,通過編寫代碼來實現數據與模型結果的可視化。

假設一個線性函數具有形式y=ax+b, 自變量是x,因變量是y,y軸截距為b,斜率為a。

下面用簡單的數據來描述線性方程y=2x+1,代碼如下:

運行腳本輸出如圖2-2所示的圖形。

圖2-2 基本直線圖

在圖2-2中,使用線性方程y=2x+1畫出的是直線圖。如果想畫出曲線圖,則只需更改線性方程為

,完整代碼如下:

運行腳本輸出如圖2-3所示的圖形。

圖2-3 曲線圖

直方圖

直方圖由一系列高度不等的縱向條形組成,表示數據分布的情況。例如,某年級學生的身高分布情況,如圖4-1所示。

圖4-1 直方圖

直方圖與柱狀圖的區別有以下幾點:

1. 柱狀圖是用條形的長度表示各類別頻數的多少,其寬度(表示類別)是固定的,主要是展示不同類別的數據。

2. 直方圖是用面積表示各組頻數的多少,矩形的高度表示每一組的頻數 ( 或頻率 ),寬度則表示各組的組距,因此其高度與寬度均有意義。

3. 由於分組數據具有連續性,因此直方圖的各矩形通常是連續排列,而柱狀圖則是分開排列。

4. 柱狀圖主要用於展示分類型數據,而直方圖主要用於展示數據型數據。

使用Matplotlib的hist()函數繪製直方圖,hist()函數的一般用法為:

主要參數說明如下:

bins:直方圖中箱子 (bin) 的總個數。個數越多,條形帶越緊密。

color:箱子的顏色。

normed:對數據進行正則化。決定直方圖y軸的取值是某個箱子中的元素的個數 (normed=False), 還是某個箱子中的元素的個數佔總體的百分比 (normed=True)。

在介紹直方圖之前,先來了解什麼是正太分布。

正態分布也稱常態分布,是連續隨機變量概率分布的一種,自然界、人類社會、心理和教育中的大量現象均按正態形式分布。例如,能力的高低、學生成績的好壞等都屬於正態分布。正態分布曲線呈鐘形,兩頭低,中間高,左右對稱。因其曲線呈鐘形,所以人們又經常稱之為鐘形曲線,如圖4-2所示。

圖4-2 正態分布的鐘形曲線

正態分布有兩個參數,即均值和標準差。均值是正態分布的位置參數,描述正態分布的集中趨勢位置。概率規律為:取與均值越近的值的概率越大,而取離均值越遠的值的概率越小。

標準差描述正態分布資料數據分布的離散程度,標準差越大,數據分布越分散;標準差越小,數據分布越集中。標準差也是正態分布的形狀參數,標準差越大,曲線越扁平;反之,標準差越小,曲線越瘦高。

繪製直方圖,需要使用NumPy的np.random.randn(N)函數,這個函數的作用就是從標準正態分布中返回N個樣本值。

示例:直方圖

本例文件名為

「PythonFullStackChapter07mpl_hist01」

顯示直方圖。其完整代碼如下:

運行腳本輸出如圖4-3所示的圖形。

圖4-3 直方圖

如果你對 matplotlib 感興趣

推薦訂閱專欄《案例上手 Python 數據可視化》

掃碼試讀了解課程

相關焦點

  • Python 繪圖,我只用 Matplotlib(二)
    而且我們也可以方便地將它作為繪圖控制項,嵌入GUI應用程式中。本文主要走進 Matplotlib 的世界,初步學會繪製圖形。在學習繪製之前,先來了解下 Matplotlib 基礎概念。用於數學運算的庫,它是在安裝 matplotlib 時候順帶安裝的。
  • 如何用matplotlib繪圖呢?
    什麼是matplotlib?使用過python做數據分析的小夥伴都知道,matplotlib是一款命令式、較底層、可定製性強、圖表資源豐富、簡單易用、出版質量級別的python 2D繪圖庫。matplotlib算是python繪圖的元老級庫,類似程式語言裡的C語言。很多其它的python繪圖庫是基於matplotlib開發的,比如seaborn、ggplot、plotnine、holoviews、basemap等。matplotlib可用於python腳本、python shell、jupyter notebook、web等。
  • 「繪圖,讓科學生動起來」:Python-matplotlib繪圖(專題一)python環境搭建篇
    筆者寄語:各位好,從今天開始,「科學是什麼東東」將推出一個全新系列專題:採用時下最流行的python計算機設計語言,對其中的一個第三方繪圖庫,即matplotlib繪圖庫進行講解,並將其強大的繪圖與編程功能應用到數學函數,化學,地理,物理,教育等諸多領域。
  • python:matplotlib入門詳細教程
    與之齊名,matplotlib作為數據科學的的另一必備庫,算得上是python可視化領域的元老,更是很多高級可視化庫的底層基礎,其重要性不言而喻。本篇對matplotlib進行系統性介紹,不會面面俱到,但求體系完備、詳略得當。
  • python使用matplotlib畫動態圖
    matplotlib是python的核心繪圖庫,是python的一個開源項目,旨在為python提供一個繪圖庫。matplotlib與numpy組合是一種可行的matlab替代方案。在可視化中matplotlib是最常使用的工具,是對數據整體判斷、效果預測不可或缺的重要模塊。
  • python數據科學系列:matplotlib入門詳細教程
    與之齊名,matplotlib作為數據科學的的另一必備庫,算得上是python可視化領域的元老,更是很多高級可視化庫的底層基礎,其重要性不言而喻。本篇對matplotlib進行系統性介紹,不會面面俱到,但求體系完備、詳略得當。
  • python - matplotlib繪圖
    一、繪圖基礎import matplotlib.pyplot as pltimport numpy as npimport tensorflow as tfimport pandas as pd>'''Matplotlib中的pyplot子庫可用來快速繪製二維圖表figure 創建畫布plot 繪製圖形show 顯示繪圖figure(num,figsize,dpi,facecolor
  • Python 數據分析:Matplotlib 繪圖
    簡介Matplotlib 是 Python 提供的一個繪圖庫,通過該庫我們可以很容易的繪製出折線圖、直方圖、散點圖、餅圖等豐富的統計圖,安裝使用 pip install matplotlib 命令即可,Matplotlib 經常會與 NumPy 一起使用。
  • 高效使用 Python 可視化工具 Matplotlib
    如果你花時間了解了這一點,才會理解matplotlib API的其餘部分。此外,許多python的高級軟體包,如seaborn和ggplot都依賴於matplotlib。因此,了解這些基礎知識後再學那些功能更強大的框架會容易一些。最後,我不是說你應該避免選擇例如ggplot(aka ggpy),bokeh,plotly或者altair等其他更好的工具。
  • Matplotlib入門詳細教程
    行文目錄結構,重點是右三分支matplotlib是python的一個繪圖庫,與numpy、pandas共享數據科學三劍客的美譽,也是很多高級可視化庫的基礎。matplomatplotlib不是python內置庫,調用前需手動安裝,且需依賴numpy庫。截至當前,matplotlib發行版本號為3.2.1,適配python3.6及以上版本。
  • matplotlib繪圖邏輯(上)
    matplotlib繪圖邏輯(上)matplotlib是一個基於Python的繪圖庫,具有對2D的完全支持和對3D圖形的有限支持,在Python科學計算社區中廣泛使用。本文對matplotblib的基本繪圖邏輯進行了比較詳細的梳理。寫作過程中參考了很多資料,由於筆記是斷續的,有些可能忘記引用,在此表達感謝。
  • Python 繪圖庫 Matplotlib 入門教程
    /Matplotlib是一個Python語言的2D繪圖庫,它支持各種平臺,並且功能強大,能夠輕易繪製出各種專業的圖像。筆者推薦大家通過pip的方式進行安裝,具體方法如下:sudo pip3 install matplotlib本文的代碼在如下環境中測試:Apple OS X 10.13Python 3.6.3matplotlib 2.1.1numpy 1.13.3介紹
  • Python matplotlib繪圖示例 - 繪製三維圖形
    Python matplotlib模塊是擴展的MATLAB的一個繪圖工具庫。
  • matplotlib繪圖的核心原理講解
    作者:朱小五來自:凹凸數據(ID:alltodata)matplotlib是基於Python語言的開源項目,旨在為Python提供一個數據繪圖包。相信大家都用過它來數據可視化,之前我還分享過25個常用Matplotlib圖的Python代碼。
  • 專題第19篇:Python繪圖神器之matplotlib
    我的施工之路今天,繼續施工專題第19篇:Python繪圖神器:matplotlib(上)使用版本本文使用的 matplotlib 版本: 3.1.3使用的 NumPy版本: 1.18.1順便說一句,matplotlib 的近親是 NumPy,對其的親緣性最好,無縫支持。
  • Python Matplotlib入門學習(一)
    的官方文檔帶領大家學習如何進行基本繪圖。Matplotlib是一個相當大的繪圖工具庫,我們這次討論的主要的是pyplot接口(api)也就是我們經常看到的,諸多代碼在使用前調用的:import matplotlib.pyplot as plt官網解釋到:
  • Python-Matplotlib: 官方學習手冊獲取與學習
    它利用通用的圖形用戶界面工具包,如Tkinter, wxPython, Qt或GTK+,向應用程式嵌入式繪圖提供了應用程式接口(API)。此外,matplotlib還有一個基於圖像處理庫(如開放圖形庫OpenGL)的pylab接口,其設計與MATLAB非常類似--儘管並不怎麼好用。SciPy就是用matplotlib進行圖形繪製。matplotlib最初由John D.
  • python matplotlib畫圖教程學習:使用介紹
    本篇文章介紹matplotlib包使用時,需要掌握的一些基本概念。除了圖中顯示的紅藍線型圖和散點圖,matplotlib還能繪製柱形圖、燭型圖、餅圖、3D圖形等等各種個性化圖形,將在後續文章一一介紹。canvas對象一般不可見,通常無需直接操作該對象,matplotlib程序實際繪圖時需要調用該對象。Axes對象字面上理解,axes是數據軸axis的複數,但它並不是指數據軸,而是子圖對象。
  • Matplotlib繪圖遇到時間刻度就犯難?現在,一次性告訴你四種方法
    最近有小夥伴私信我關於matplotlib時間類型刻度的設置問題,第一感覺就是官網有好多例子介紹啊 轉念一想,在實際應用中類似設置還挺多和好多小夥伴詢問,那麼本期就就簡單介紹下Python-matplotlib「刻度(ticker)」 的使用方法,並結合具體例子講解時間刻度設置問題,使小夥伴們定製化刻度不再煩惱
  • Python matplotlib基礎繪圖函數示例
    X,Y,Z,N)繪製等值圖plt.vlines()繪製垂直圖plt.stem(x,y,linefmt,markerfmt)繪製柴火圖plt.plot_date()繪製數據日期程序示例:繪製餅圖:# -*- coding:utf-8 -*-import matplotlib.pyplot