Matplotlib資料視覺化(7):圖片展示與儲存
In [1]:
import os import matplotlib.image as mpimg from PIL import Image import matplotlib.pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] # 中文字型支援
除了作圖功能,matplotlib也提供本地圖片展示以及儲存圖片的功能,這兩個通能通過imshow()方法和savefig()方法實現。
1 圖片展示¶
在使用imshow()展示圖片前,需要先將圖片讀取出來。讀取圖片可以通過pillow庫,也可以用matplotlib本身自帶的image模組實現。
In [2]:# 使用pillow庫讀取圖片 img = Image.open(r"./jupyter/matplotlib/images/1.jpg") fig = plt.figure(figsize=(8, 4)) ax1 = fig.add_subplot(121) ax1.imshow(img) # 使用matplotlib自帶image庫讀取圖片 img = mpimg.imread(r"./jupyter/matplotlib/images/1.jpg") ax2 = fig.add_subplot(122) ax2.imshow(img) plt.show()
可以設定關閉座標軸:
In [3]:img = mpimg.imread(r"./jupyter/matplotlib/images/1.jpg") fig = plt.figure(figsize=(4, 2)) ax1 = fig.add_subplot(111) ax1.imshow(img) ax1.axis('off') plt.show()
imshow()方法中提供了眾多引數以供個性化得展示圖片,但我更建議使用pillow等專業的圖片處理庫先對圖片進行處理,然後交由imshow()方法進行展示,以下是使用imshow方法顯示灰度圖片:
img=Image.open(r"./jupyter/matplotlib/images/1.jpg") img = np.array(img) if img.ndim == 3: img2 = img[:,:,0] plt.subplot(321); plt.imshow(img) plt.subplot(322); plt.imshow(img, cmap = 'gray') # 無效 plt.subplot(323); plt.imshow(img2) plt.subplot(324); plt.imshow(img2, cmap = 'gray') # 灰度 plt.subplot(325); plt.imshow(img2, cmap = plt.cm.gray) # 與cmap ='gray'等效 plt.subplot(326); plt.imshow(img2, cmap = plt.cm.gray_r) # 反向灰度 plt.show()
顯示多張圖片:
In [5]:index = 1 fig, axes = plt.subplots(4, 3, figsize=(8, 4), tight_layout=True) for row in range(4): for col in range(3): image_name = os.path.join(r'./jupyter/matplotlib/images', str(index)+'.jpg') img = plt.imread(image_name) axes[row, col].imshow(img) axes[row, col].axis('off') index += 1 plt.show()
相關推薦
Matplotlib資料視覺化(7):圖片展示與儲存
In [1]: import os import matplotlib.image as mpimg from PIL import Image import matplotlib.pyplot as plt import numpy as np import matplot
Matplotlib資料視覺化(4):折線圖與散點圖
In [1]: from matplotlib import pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] # 中
Matplotlib資料視覺化(6):餅圖與箱線圖
In [1]: from matplotlib import pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] # 中文字型支
Matplotlib資料視覺化(1):入門介紹
1 matplot入門指南¶ matplotlib是Python科學計算中使用最多的一個視覺化庫,功能豐富,提供了非常多的視覺化方案,基本能夠滿足各種場景下的資料視覺化需求。但功能豐富從另一方面來說也意味著概念、方法、引數繁多,讓許多新手望而卻步。 據我瞭解,大部分人在對m
Matplotlib資料視覺化(2):三大容器物件與常用設定
上一篇部落格中說到,matplotlib中所有畫圖元素(artist)分為兩類:基本型和容器型。容器型元素包括三種:figure、axes、axis。一次畫圖的必經流程就是先建立好figure例項,接著由figure去建立一個或者多個axes,然後通過axes例項呼叫各種方法
Matplotlib資料視覺化(3):文字與軸
在一幅圖表中,文字、座標軸和影象的是資訊傳遞的核心,對著三者的設定是作圖這最為關心的內容,在上一篇部落格中雖然列舉了一些設定方法,但沒有進行深入介紹,本文以圍繞如何對文字和座標軸進行設定展開(對影象的設定在後續介紹到各種圖繪製時介紹)。 這裡所說的文字是指在使用matplot
Matplotlib資料視覺化(5):柱狀圖與直方圖
柱狀圖和直方圖是兩種非常類似的統計圖,區別在於: 直方圖展示資料的分佈,柱狀圖比較資料的大小。 直方圖X軸為定量資料,柱狀圖X軸為分類資料。因此,直方圖上的每個條形都是不可移動的,X軸上的區間是連續的、固定的。而柱狀圖上的每個條形是可以隨意排序的,有的情況下需要按照分
勒布朗生涯資料視覺化(二)用Matplotlib製作柱形圖及Figure, Text類和bar函式的引數探索
簡介 本篇文章使用Kaggle.com上的資料集NBA Players stats since 1950中的Seasons_Stats.csv,其包含從1950至今的每個賽季的球員資料,每條資料有53項欄目,是綜合性較強的NBA資料集,我嘗試從中提取勒布朗詹姆
Caffe視覺化(二):權重及輸出視覺化(用Deep Visualization Toolbox實現)
Caffe視覺化(二):權重及輸出視覺化(用Deep Visualization Toolbox實現) 本文記錄了博主在研究Caffe權重及輸出視覺化過程中發現的工具包,包括工具包的安裝、使用和調整(以適應自定義網路)的相關內容。更新於2018.10.26。 文章目錄
Caffe視覺化(一):網路結構視覺化(用Caffe自帶程式實現)
Caffe視覺化(一):網路結構視覺化(用Caffe自帶程式實現) 本文記錄瞭如何利用Caffe自帶的程式實現網路的視覺化,包括可能遇到的問題和解決方案。更新於2018.10.25。 文章目錄 Caffe視覺化(一):網路結構視覺化(用Caffe自帶程式實現
Cesium中級1 - 空間資料視覺化(一)
#[CesiumJS]Cesium中級1 - 空間資料視覺化(一) Cesium中文網:http://cesiumcn.org/ | 國內快速訪問:http://cesium.coinidea.com/ 本教程將教讀者如何使用Cesium的實體(Entity)API繪製空間資料,如點、標
python --資料視覺化(二)
一、NumPy 1、簡介: 官網連結:http://www.numpy.org/ NumPy是Python語言的一個擴充程式庫。支援高階大量的維度陣列與矩陣運算,此外也針對陣列運算提供大量的數學函式庫 2、基本功能: 快速高效的多維陣列物件ndarray 用於對陣列執行元素級計算以及直
java 資料視覺化(二)通過jdbc訪問資料庫,在servlet上獲取資料庫資料
想要通過servlet獲取資料庫資料,首先需要建立jdbc 因為資料是通過無線感測傳到資料庫的,因此jdbc裡只有查詢操作,增刪改的同學可以自行新增。 程式碼中被註釋掉的部分用於測試。 main函式部分用於檢測是否連線上資料庫,並檢測是否能讀到資料,若是讀得到
PYTHON資料視覺化(四)seaborn
線性關係視覺化 許多資料集都有著眾多連續變數。資料分析的目的經常就是衡量變數之間的關係,我們之前介紹了可以繪製雙變數分佈的函式。然而,使用統計模型來估計兩個噪聲觀測組之間的簡單關係可能是非常有幫助的。我們在這一章中討論的函式功能將線上性迴歸的框架實現。 請注
java程式設計師的大資料之路(7):基於檔案的資料結構
SequenceFile 介紹 由於日誌檔案中每一條日誌記錄是一行文字。如果想記錄二進位制型別,純文字是不合適的。這種情況下,Hadoop的SequenceFile類非常合適。SequenceFile可以作為小檔案容器。而HDFS和MapReduce是針
kaggle中的視覺化(一):House Prices
kaggle中預測的get started專案,原文連結。 看原文可以入門特徵工程,這裡主要說視覺化部分,用到matplotlib和seaborn。 導庫增加 import seaborn as sns from scipy.stats import
資料結構——圖(7)——最短路徑與Dijkstra's Algorithm
帶權圖 在圖中,給每一條路徑帶上一定的權重,這樣的圖我們稱為帶權圖。如下圖所示: 我們現在來回顧一下BFS跟DFS的基本思想: 深度優先搜尋:繼續沿著路徑搜尋,直到我們需要回溯,但這種方式不保證最短路徑。 廣度優先搜尋:檢視包含距離1的鄰居,然後是距離2的鄰
資料結構——圖(7)——最短路徑與Dijkstra's Algorithm
帶權圖 在圖中,給每一條路徑帶上一定的權重,這樣的圖我們稱為帶權圖。如下圖所示: 我們現在來回顧一下BFS跟DFS的基本思想: 深度優先搜尋:繼續沿著路徑搜尋,直到我們需要回溯,但這種方式不保證最
Shell應用(7):nginx升級與恢復
指令碼概述 nginx是一款著名的開源web伺服器,為方便升級與恢復,編寫了一個簡單的指令碼,因為升級備份了可執行檔案和配置檔案(字尾名為old),所以可用於恢復。當升級時,若nginx正在執行,則不中斷服務進行平滑升級,否則直接拷貝覆蓋;當恢復時,若nginx正在執行,則不中斷服務進行平滑恢
java程式設計師的大資料之路(5):HDFS壓縮與解壓縮
背景 好久沒有更新了,原因是公司專案上線,差點被祭天。在這種驚心動魄的時候還是要抽時間做一點自己喜歡做的事情的,然而進度比預期慢了許多。 正式開始 接下來就開始記錄最近的學習成果啦! 在Hadoop叢集中,網路資源是非常珍貴的。因此對檔案進行壓縮是非