這麼用MatPlotLib視覺化呈現數據,你值得擁有!

2021-01-10 讀芯術

全文共6661字,預計學習時長20分鐘或更長

圖片來源:pexels.com/@divinetechygir

在現代數字世界中,數據就像空氣一樣重要。

人們每天都會自覺或不自覺地消費和產生大量數據。近來,許多商家試圖利用這些數據來進行營銷和吸引消費者。所有行業都開始在其服務中增添人性化色彩,向消費者兜售絕佳的用戶體驗。而這一切都是基於數據科學下人工智慧和機器學習技術的發展。機器正變得越發聰明,能通過分析大量數據從而做出決策。

為了分析大量數據集,機器需要使用通過Python語言構建的數據視覺化工具。因此,今天需要了解以下問題:

1. 什麼是數據視覺化呈現?

2. 有哪些數據視覺化呈現工具?

3. 如何使用這些工具?

4. 為什麼需要學習使用這些工具?

數據科學中的數據視覺化

眾所周知,人腦更易於理解圖像。因此有句俗語說:一圖勝千言。而這完全適用於數據科學,因為其需要分析大量視覺化呈現的數據以推演數據模型。

數據視覺化是數據科學領域的一項技術,可使你講出具有信服力的故事,通過易於理解、模擬化的方式將數據和分析結果視覺化呈現。這項技術能讓複雜的數據看起來很簡單,並易於理解。

數據視覺化呈現工具

以下介紹幾個常用的數據視覺化工具:

1. Matplotlib

2. Seaborn

3. Plotly

4. Pandas

學習使用這些視覺化工具可促進數據理解、信息提取和決策制定。本文將對Matplotlib工具進行詳細介紹。

Matplotlib

Matplotlib是一個Python的2D繪圖庫,它以各種硬拷貝格式和跨平臺的交互式環境生成出版質量級別的圖形。Matplotlib可在多種環境下運行,包括Python腳本、Python及IPython shell命令行,Jupyter notebook,網絡應用伺服器與四個圖形用戶界面工具包。

Matplotlib廣泛應用於數據視覺化,運行良好,用戶界面與Matlab相似度較低,並給予用戶極大的編碼靈活度。寫編碼可能會很無聊,但Matplotlib會給用戶極大的自由。

安裝Matplotlib

1. 使用畫中畫

python -m pip install -U pip

python -m pip install -U matplotlib

2. 使用Python科學包

有許多第三方科學包,如:

· Anaconda

· Canopy

· Activestate

本文最推薦Anaconda。它是常用Python數據科學包之一,可幫助輕鬆安裝所有數據科學包,並預裝Numpy,SciPy, Pandas, Matplotlib, Plotly等工具。推薦所有人安裝這個科學包,安裝時間只需要幾秒鐘。

可在conda終端運行conda命令以安裝任何科學包。不過需要訪問官網獲取準確的命令形式。

conda install PackageName

對於Matpotlib工具:

conda install matplotlib

不同類型的Matpolotlib工具提供的功能不同:

1. 線、條、標誌

2. 圖像、輪廓、場

3. 餅狀圖、極坐標圖

4. 統計性繪圖

以及許多其它功能。這些功能廣泛應用於折線圖、柱狀圖、直方圖、餅狀圖等。

案例學習

如上所述,可使用Matplotlib繪製多種圖形,如散點圖、柱狀圖和直方圖。根據數據視覺化過程中的實際需求選擇圖形類型,如群組對比、定量變量對比、數據分布分析等。

以下介紹幾個常用的繪圖技巧:

基本要求

解決實際問題之前,須安裝好工具:

安裝Anaconda科學包

1. 首先,確保安裝Anaconda

啟動JupyterNotebook

Anaconda科學包安裝完成後,打開Anaconda指南,啟動Jupyter notebook(如下圖所示)。使用Jupyter notebook對案例進行編碼。

檢查安裝預裝包

參考下圖:在Environments菜單下,右側顯示有預裝包。比如,搜索Pandas,界面右側顯示Pandas已安裝。同樣,可輸入需要的安裝包名稱進行安裝。檢查並確保安裝matplotlib,numpy, pandas, seaborn等工具。

確保安裝所有科學包後,學習繪製餅狀圖。

關於Matplotlibs的幾個要點

Matplotlibs包含一個幫助繪圖的子模塊,稱為Pyplot。繪圖中可使用Jupyter notebook,它易於使用、操作簡單。運行import matplotlib.pyplot as plt命令導入Matplotlibs下的Pyplot模塊。

· 使用Pandas pd.read_csv()導入所需圖庫和數據集。

· 使用plt.plot()繪製折線圖及其他圖形。所有繪圖功能都需要數據,數據以參數形式提供。

· 使用plot.xlabel , plt.ylabel分別標記x軸和y軸。

· 使用plt.xticks , plt.yticks分別標記x軸和y軸觀察點。

· 使用 plt.legend()表示觀察變量。

· 使用plt.title()設置圖片標題。

· 使用plot.show()展示圖片。

1. 繪製餅狀圖

#Here we import ther matplotlibpackage with alias name as plt

import matplotlib.pyplot as plt

plt.bar([1,3,5,7,9],[5,2,7,8,2],label=」Example one」)

plt.bar([2,4,6,8,10],[8,6,2,5,6],label=」Example two」, color=』g』)plt.legend()plt.xlabel(『bar number』)plt.ylabel(『bar height』)

plt.title(『Wow! We Got OurFirst Bar Graph』)

plt.show()

將以上編碼複製粘貼到Jupyter notebook,運行該命令,餅狀圖如下所示:

說明:

導入matplotlib包後,其子模塊pyplot運行餅狀圖繪製命令。

通過以下說明了解plt. bar繪圖方法。

#matplotlib.pyplot.bar(x,height, width=0.8, bottom=None, *, align='center',data=None, **kwargs)[source]

So to Make a bar plot:

The bars are positioned at xwith the given alignment. Their dimensions are given by width andheight. The vertical baseline is bottom(default 0).

Each of x, height,width, and bottom may either be a scalar applying to all bars, orit may be a sequence of length N providing a separate value for each bar.

2. 直方圖

直方圖由一系列高度不等的縱向條紋或線段表示數據分布的情況。

直方圖可用以估測數據分布,頻率值被劃分到某一數值段。

若需想為某一直方賦值,使用numpyhistogram()方法,運行如下命令。若需估測數值分布,可使用.hist()方法,繪製簡單直方圖。

Matplotlib可通過NumPy’s histogram()方法視覺化呈現Python直方圖,並提供通用包裝:

案例:

#Histogram Codeimport matplotlib.pyplot as plt

import numpy as np #importingnumpy package for array generation

np.set_printoptions(precision=3)>>> d = np.random.laplace(loc=15, scale=3, size=500)>>> d[:5]

# An "interface" tomatplotlib.axes.Axes.hist() method

n, bins, patches =plt.hist(x=d, bins='auto', color='#0504aa',alpha=0.7,rwidth=0.85)plt.grid(axis='y', alpha=0.75)plt.xlabel('Value')plt.ylabel('Frequency')plt.title('My First Histogram Ever')plt.text(23, 45, r'$\mu=15, b=3$')maxfreq = n.max()# Set a clean upper y-axis limit.plt.ylim(ymax=np.ceil(maxfreq / 10) * 10 if maxfreq % 10 else maxfreq + 10)

說明:

可通過matplotlib下pyplot.hist()命令繪製直方圖。須確定所需直方內線條數量。X軸接觸線條邊緣,y軸為相應頻率。在以上直方圖中,bins='auto'命令從兩個算法中選擇,以估算理想的線條數。更深層面,算法的目標是選擇合適的線寬,以最忠實地表現數據。

原始碼輸出:#以上提到的直方圖編碼:

3. 散點圖

散點圖是繪圖或數學圖形,使用笛卡爾坐標表現一組數據中兩個變量的數值。如果對散點進行編碼(顏色/形狀/規模),可額外表現一個變量。散點圖將數據顯示為一組點,一變量值決定散點水平位置,另一變量值確定其垂直位置。

散點圖可以顯示不同變量之間的相互關聯關係,並具有一定的機密間隔。比如,重量和高度,y軸為重量,x軸為高度。關聯關係可以是正向的(起)、反向的(落)、不存在的(無關聯)。如果散點模型從左下向右上傾斜,顯示變量之間為正相關。如果傾斜趨勢為從左上到右下,則為負相關。

模型:

matplotlib.pyplot.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, *, plotnonfinite=False, data=None, **kwargs)[source]

x,y :array_like, shape (n, )

The data positions.

s : scalar orarray_like, shape (n, ), optional

The marker size in points**2. Default is rcParams['lines.markersize'] ** 2.

c : color, sequence,or sequence of color, optional

案例:

#scatter plot lib example usingmatplotlb

import numpy as npimport matplotlib.pyplot as plt

# Create dataN = 100x = np.random.rand(N)y = np.random.rand(N)colors = (0,100,255)area = np.pi*3

# Plotplt.scatter(x, y, s=area, c=colors, alpha=0.5)plt.title('Scatter plot example using matplotlib')plt.xlabel('x')plt.ylabel('y')plt.show()

在jupyternotebook上編碼,結果如下所示:

通過實際數據集理解數據視覺化

使用從kaggle下載的汽車數據集理解MatplotLib數據視覺化

切記:

1. 從上述網站下載Automobile.csv文件

2. 將Jupyter文件上載至編碼所在的工作目錄

3. 繪製直方圖:分類使用群組數據:

可在一次繪圖中繪製多幅直方圖,有助於比較分類持續變量的分布。

使用Automobile.csv數據集進行理解:

讀取數據集:

import pandas as pd#Reading data frm the automobile #data sets using pandas read method

df =pd.read_csv(『Automobile.csv』)df.head()

#When you compile this code youwill see the below given o/p as a series of data column wise.

將以下編碼編寫/複製-粘貼至jupyter notebook文件:

import matplotlib.pyplot as plt

#is you don't want to make aregular call on #plt.show use this line%matplotlib inline

x1 =df.loc[df.make=='alfa-romero', 'horsepower']x2 = df.loc[df.make=='audi', 'horsepower']x3 = df.loc[df.make=='bmw', 'horsepower']x4 = df.loc[df.make=='ferrari', 'horsepower']

kwargs = dict(alpha=0.9,bins=100)

plt.hist(x1, **kwargs,color='g', label='alfa-romero')plt.hist(x2, **kwargs, color='b', label='audi')plt.hist(x3, **kwargs, color='r', label='bmw')plt.hist(x3, **kwargs, color='y', label='ferrari')

plt.gca().set(title='Horsepower Varitation for various make of a car', ylabel='Frequency')#plt.xlim(50,200)plt.legend();

以下直方圖使用了給定數據集的數值

顯然,馬力值集中在110-120 hp區段。

散點圖:

用散點圖表現數據分布。基於車型觀察價格分布。

將以下編碼複製/粘貼至jupyter notebook文件,並運行命令。

# Scatter Plot

import matplotlib.pyplot as plt%matplotlib inline

import pandas as pd

df = pd.read_csv(『Automobile.csv』)

bodystyle = df[『body_style』]#fetching bodytype values rprice = df[『price』] #fetching price for different body type

plt.scatter(bodystyle, price,edgecolors=』r』)plt.xlabel(『body_style』, 'make')plt.ylabel(『price (Rs)』)plt.title(『Price variation based on car body type』)

輸出:

觀察:

數據點集中與轎車車型,價格通常在10,000至15,000美元之間。倉門式汽車次之。貨車車型的價格最低。

更多繪圖類型:

1. 小提琴圖

2. 堆積圖

3. 莖葉圖

4. 線條圖

5. 箱型圖

以下這幅圖全面展示了常用數據視覺化圖(表)類型,根據數據分析要求選擇適合的圖(表):

留言 點讚 關注

我們一起分享AI學習與發展的乾貨

歡迎關注全平臺AI垂類自媒體 「讀芯術」

相關焦點

  • 手把手教你用Matplotlib進行數據可視化
    http://matplotlib.org就像我們用縮寫np來表示NumPy一樣,我們也會用一些標準的縮寫來表示Matplotlib導入:import matplotlib as mpl   import matplotlib.pyplot as plt plt是我們最常用的一個接口。
  • Python數據可視化技能提升—用好matplotlib第1篇
    好啦,既然有朋友提出需要來啦,那今天咱們就聊點Python數據可視化相關的東東吧,說到Python的數據可視化呢,就必須提Python的一個庫哦,它就是大名鼎鼎的matplotlib庫,也是目前用得最多的Python數據可視化庫哦,matplotlib其實把MatLab的很多優點都借鑑了過來,所以呢,熟悉MatLab的朋友,對於matplotlib是上手很快的哦!
  • 如何用matplotlib繪圖呢?
    什麼是matplotlib?使用過python做數據分析的小夥伴都知道,matplotlib是一款命令式、較底層、可定製性強、圖表資源豐富、簡單易用、出版質量級別的python 2D繪圖庫。matplotlib算是python繪圖的元老級庫,類似程式語言裡的C語言。很多其它的python繪圖庫是基於matplotlib開發的,比如seaborn、ggplot、plotnine、holoviews、basemap等。matplotlib可用於python腳本、python shell、jupyter notebook、web等。
  • matplotlib的Python數據可視化和探索——入門指南
    matplotlib——最受歡迎的Python庫,用於數據可視化和探索我喜歡在Python中使用matplotlib。這是我學會掌握的第一個可視化庫,此後一直存在。matplotlib是最受歡迎的用於數據可視化和探索的Python庫,這是有原因的——它提供的靈活性和敏捷性是無與倫比的!
  • Python 繪圖庫 Matplotlib 入門教程
    運行環境由於這是一個Python語言的軟體包,因此需要你的機器上首先安裝好Python語言的環境。關於這一點,請自行在網絡上搜索獲取方法。關於如何安裝Matplotlib請參見這裡:Matplotlib Installing。
  • 見識matplotlib:不常見的一面,折線圖!
    人們往往都更喜歡看圖說話,那麼用python的各位大俠們,大家都在用什麼畫圖呢?各種各樣的畫圖包猶如各式各樣的兵器,有的兵器功能單一但是在細分領域超級專業無敵,有的兵器功能多而全,用法靈活。眾所周知,matplotlib是python繪圖的基礎包,能夠生成各種各樣2D或者3D的圖形,用法算是多而全的那種,下邊是matplotlib官網首頁作為例子的幾張圖,大家感受一下:什麼?醜拒?不不不,別激動!其實matplotlib一直是一個低調奢華有內涵的包,需要我們透過它樸實無華的外表認清它豐富多彩的內在,來康康這條妖嬈的曲線,有沒有感受到它的召喚?
  • matplotlib繪圖的核心原理講解
    作者:朱小五來自:凹凸數據(ID:alltodata)matplotlib是基於Python語言的開源項目,旨在為Python提供一個數據繪圖包。相信大家都用過它來數據可視化,之前我還分享過25個常用Matplotlib圖的Python代碼。可是你了解過它繪圖的核心原理嗎?
  • 30分鐘入門 Matplotlib 繪圖
    數據可視化是數據分析的重要環節,藉助圖形能夠幫助更加直觀地表達出數據背後的」東西」。Matplolib最初主要模仿Matlab的畫圖命令,但是它是獨立於Matlab的,可以自由、免費使用的繪圖包。Matplotlib依賴於之前介紹的Numpy庫來提供出色的繪圖能力。
  • python matplotlib畫圖教程學習:使用介紹
    本篇文章介紹matplotlib包使用時,需要掌握的一些基本概念。除了圖中顯示的紅藍線型圖和散點圖,matplotlib還能繪製柱形圖、燭型圖、餅圖、3D圖形等等各種個性化圖形,將在後續文章一一介紹。matplotlib圖形的幾個主要對象:Figure對象整個圖形即是一個Figure對象。Figure對象至少包含一個子圖,也就是Axes對象。
  • 提高編程能力:Python數據可視化技能提升——好matplotlib第2篇
    上次已經和大家聊了Python數據可視化的經典庫:matplotlib,大家已經知道啦,matplotlib庫是Python中用於繪製二維、三維等這些圖表的數據可視化工具,並且已經和大家聊完了關於matplotlib庫的安裝啦、還有matplotlib庫的兩個函數,分別是plot()函數和scatter()函數哦,相信大家已經對於這兩個函數的用法掌握啦,在這就不多說了哈,如果還想繼續了解
  • PyCharm安裝matplotlib教程——安裝好matplotlib但是import報錯
    輸入python -m pip install -U pip setuptools2.輸入python -m pip install matplotlib3.檢查是否已經安裝成功。輸入python -m pip list成功安裝。默認安裝在D:\Python\Lib\site-packages方式二:通過下載matplotlib進行安裝。
  • matplotlib中文顯示之圖表大全
    全局支持中文顯示以及指定局部中文顯示https://aistudio.baidu.com/aistudio/projectdetail/390895使用中還有問題可以在論壇中提出(你的問題可能大家已經討論過了)https://ai.baidu.com/forum/topic/show/958873考慮到部分同學對matplotlib本身不是太熟悉
  • Matplotlib新版本3.1發布,新功能介紹
    範例程序(基於Jupyter環境,下同)%matplotlib inlineimport datetimeimport matplotlib.pyplot as pltimport matplotlib.dates as mdatesimport numpy as npbase = datetime.datetime
  • 看了這個總結,其實 Matplotlib 可視化,也沒那麼難!
    作者 | 舊時晚風拂曉城 來源 | 傑哥的IT之旅(ID:Jake_Internet)頭圖 | CSDN 下載自東方IC公眾號「傑哥的IT之旅」後臺回覆:「matplotlib數據可視化」,獲取本文完整數據集。Python 中可以通過 matplotlib 模塊的 pyplot 子庫來完成繪圖。
  • 使用Matplotlib可視化數據的5個強大技巧
    數據可視化用於以更直接的表示方式顯示數據,並且更易於理解。它可以用柱狀圖、散點圖、折線圖、餅圖等形式形成。許多人仍然使用Matplotlib作為後端模塊來可視化他們的圖形。在這個故事中,我將給你一些技巧,使用Matplotlib創建一個優秀圖表的5個強大技巧。1.
  • Matplotlib繪圖|快速定義圖表樣式的小技巧
    參數是以字典鍵值對的形式聲明,格式如下matplotlib.rcParams['lines.linewidth'] = 2matplotlib.rcParams['lines.linestyle'] = '--'在創建圖表之前,對全局參數進行設定,設定好了之後可以應用到全部圖表中,不需要自己再進行逐一設置mpl.rcParams['lines.linewidth']
  • 50種常用的matplotlib可視化,再也不用擔心模型背著我亂跑了
    機器之心報導參與:思源數據分析與機器學習中常需要大量的可視化,因此才能直觀了解模型背地裡都幹了些什麼。而在可視化中,matplotlib 算得上是最常用的工具,不論是對數據有個預先的整體了解,還是可視化預測效果,matplotlib 都是不可缺失的模塊。
  • Python可視化:matplotlib的坐標軸和rc參數設置指南!
    這是matplotlib繪製的y = x^2:這是本人親手繪製的y = x^2:(本靈魂畫手已上線,非戰鬥人員請撤離!不要太在意細節哈,忽視那個長的不太協調的x軸和彎彎曲曲如蚯蚓的拋物線,手殘黨表示真的盡力了,意會!意會哈!)正經的說,雖然都是y = x^2的圖像,是不是感覺兩幅圖差異還蠻大的。
  • Matplotlib數據可視化:餅圖與箱線圖
    from matplotlib import pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParams['font.sans-serif
  • 使用Matplotlib繪製堆積條形圖
    在這種情況下,堆積條形圖是一個很好的選擇,它讓我們能更好地比較和分析數據。在本文中,我們將探討如何使用Python的Matplotlib構建這些可視化圖形。我將使用一個簡單的數據集來保存全球的遊戲副本的銷售數據(雖然這個數據集已經過時,但它適合我們的示例)。