Matplotlib繪圖基礎(chǔ)之畫布詳解
Matplotlib
庫是一個(gè)用于數(shù)據(jù)可視化和繪圖的 Python 庫。
它提供了大量的函數(shù)和類,可以幫助用戶輕松地創(chuàng)建各種類型的圖表,包括直方圖、箱形圖、散點(diǎn)圖、餅圖、條形圖和密度圖等。
使用 Matplotlib
的過程中,遇到的難點(diǎn)并不在于繪制各類的圖形,因?yàn)槊糠N圖形都有其對應(yīng)的API。
難點(diǎn)在于對繪制的圖形進(jìn)行調(diào)整,這些調(diào)整包括:
- 圖形的大小
- 多個(gè)圖形的組合
- 坐標(biāo)軸的方向,刻度的精度
- 圖形的顏色和字體
等等。
進(jìn)行這些調(diào)整需要對 Matplotlib
的繪圖機(jī)制和其中的主要元素有個(gè)整體的了解。
本篇首先整體介紹下Matplotlib
繪制的圖形中的主要元素,然后重點(diǎn)介紹下其中第一個(gè)重要的元素--畫布。
1. 主要元素
下面繪制一個(gè)簡單的圖形來演示Matplotlib
繪圖時(shí)的主要元素。
import numpy as np import matplotlib import matplotlib.pyplot as plt %matplotlib inline #繪制一個(gè)展示主要元素的圖 x = np.array(range(0, 8)) y1 = np.sin(x) fig = plt.figure() fig.set_size_inches(10,4) fig.set_facecolor('lightgreen') fig.suptitle("整個(gè)圖形的總標(biāo)題") fig.subplots_adjust(wspace=0.3) ax1 = fig.add_subplot(121) ax1.plot(x, y1) ax1.set_title("圖1 標(biāo)題") ax1.set_xlabel("圖1--x軸") ax1.set_ylabel("圖1--y軸") ax2 = fig.add_subplot(122) y2 = np.cos(x) ax2.plot(x, y1) ax2.plot(x, y2) ax2.set_title("圖2 標(biāo)題") ax2.set_xlabel("圖2--x軸") ax2.set_ylabel("圖2--y軸") ax2.legend(labels=["sin", "cos"]) fig.show()
上例中,我們繪制了2個(gè)子圖。主要的元素包括,圖形的大小,圖形的標(biāo)題(主標(biāo)題和子圖標(biāo)題),坐標(biāo)軸(軸標(biāo)簽和刻度),圖例,子圖中曲線(這里可以根據(jù)情況換成其他圖形,比如柱狀圖,散點(diǎn)圖等等)。
上面的示例代碼不用太關(guān)心,這里只是為了顯示Matplotlib
的主要元素。
后續(xù)的文章會介紹各個(gè)主要元素的常用屬性,最終的目的是能夠靈活的繪制出符合顯示要求的圖形,而不僅僅只是繪制出圖形。
本篇介紹的主要元素是畫布。
2. 畫布
畫布是其他所有的元素的載體,可以說是最重要,也是最容易被忽視的元素。
繪制圖形之前,第一件事就是創(chuàng)建畫布。
2.1. 主要屬性
創(chuàng)建畫布之后,一般主要用到的屬性是調(diào)整畫布的大小和顏色。
Matplotlib
畫布的大小通過設(shè)置英寸和dpi
來實(shí)現(xiàn),dpi
表示一英寸有多少像素。
2.1.1. 畫布大小
比如下面的示例:
fig = plt.figure(figsize=[6, 3], dpi=100) fig.suptitle("標(biāo)題") x = np.array(range(0, 8)) y = np.sin(x) plt.plot(x, y)
修改dpi=200
,圖形明顯變大和清晰。
fig = plt.figure(figsize=[6, 3], dpi=200)
2.1.2. 畫布顏色
除了大小,設(shè)置畫布的顏色也是比較常用的。
顏色主要有兩種,背景色和邊框顏色(默認(rèn)的邊框?qū)挾仁?,所以要設(shè)置邊框顏色時(shí),別忘了設(shè)置邊框的寬度)。
比如:下面示例設(shè)置了背景色淺綠色,邊框?qū)挾?0,顏色紅色。
fig = plt.figure(facecolor="lightgreen", edgecolor="red", linewidth=10) fig.suptitle("標(biāo)題") x = np.array(range(0, 8)) y = np.sin(x) plt.plot(x, y)
2.2. 主要方法
除了屬性,畫布還有幾個(gè)方法也是經(jīng)常使用的。
2.2.1. 設(shè)置標(biāo)題
上面的示例中已經(jīng)包含了,也就是 suptitle()
方法。
2.2.2. 添加子圖
添加子圖用 add_subplot()
方法,這個(gè)方法的參數(shù)一般是三個(gè)數(shù)組 xyz
,x
表示有幾行,y
表示有幾列,z
表示是第一個(gè)子圖。
比如:一行兩列2個(gè)圖
fig = plt.figure() fig.add_subplot(121) fig.add_subplot(122)
比如:2行一列2個(gè)圖:
fig = plt.figure() fig.add_subplot(211) fig.add_subplot(212)
比如:2行2列4個(gè)圖:
fig = plt.figure() fig.add_subplot(221) fig.add_subplot(222) fig.add_subplot(223) fig.add_subplot(224)
2.2.3. 保存圖像
畫布還有個(gè)重要的功能就是把顯示的圖形保存下來,即 savefig()
方法。
可以把繪制的圖形保存到磁盤,用于分享或者制作報(bào)告。
fig.savefig("d:/share/image.png")
3. 總結(jié)回顧
畫布讓我們可以整體上設(shè)置圖形的質(zhì)量和排版,分析和作圖過程中雖然不用過多考慮它,但是最終如果要出報(bào)告和文檔時(shí),畫布的設(shè)置就會變得重要。
畫布是繪圖的第一步,接下來這個(gè)系列會逐步介紹 Matplotlib
的其他主要元素。
到此這篇關(guān)于Matplotlib繪圖基礎(chǔ)之畫布詳解的文章就介紹到這了,更多相關(guān)Matplotlib畫布內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
django傳值給模板, 再用JS接收并進(jìn)行操作的實(shí)例
今天小編就為大家分享一篇django傳值給模板, 再用JS接收并進(jìn)行操作的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05python issubclass 和 isinstance函數(shù)
這篇文章主要介紹了python issubclass 和 isinstance函數(shù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-07-07Python 處理數(shù)據(jù)庫事務(wù)的操作方法
在Python中,處理數(shù)據(jù)庫事務(wù)通常涉及使用特定的數(shù)據(jù)庫驅(qū)動如sqlite3、PyMySQL和psycopg2等,這些庫提供事務(wù)管理功能,允許開發(fā)者手動控制事務(wù)的提交和回滾,本文給大家介紹Python如何處理數(shù)據(jù)庫事務(wù),感興趣的朋友一起看看吧2024-10-10Pytorch的安裝過程之pip、conda、Docker容器安裝
PyTorch是一個(gè)基于Python的開源深度學(xué)習(xí)框架,可用于訓(xùn)練和預(yù)測深度學(xué)習(xí)模型,PyTorch支持多種安裝方法,這篇文章主要介紹了Pytorch的安裝----pip、conda、Docker容器,需要的朋友可以參考下2023-04-04