欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python基礎(chǔ)教程之Matplotlib圖形繪制詳解

 更新時(shí)間:2023年07月12日 08:59:12   作者:陸理手記  
Matplotlib是一個(gè)廣泛使用的數(shù)據(jù)可視化庫,提供了豐富的繪圖功能,用于創(chuàng)建各種類型的靜態(tài)、動(dòng)態(tài)和交互式圖形,本文將通過多個(gè)例子給大家詳細(xì)介紹一下Python的Matplotlib圖形繪制,需要的朋友可以參考下

1.引言

以下是Matplotlib的一些主要特點(diǎn):

  • 簡單易用:Matplotlib提供了簡單而直觀的API,使得繪圖變得容易上手和使用。
  • 多樣化的圖形:它支持各種常見的圖形類型,包括線圖、散點(diǎn)圖、柱狀圖、餅圖、等高線圖、3D圖等。你可以根據(jù)需求選擇合適的圖形進(jìn)行繪制。
  • 高度可定制性:Matplotlib提供了大量的參數(shù)選項(xiàng),你可以自定義圖形的各個(gè)方面,包括線型、顏色、標(biāo)簽、標(biāo)題、網(wǎng)格等,以滿足特定的需求。
  • 高質(zhì)量的輸出:Matplotlib能夠生成高質(zhì)量的圖形輸出,支持多種輸出格式,如PNG、JPEG、PDF等,方便在論文、報(bào)告和演示文稿中使用。
  • 與NumPy集成:Matplotlib與NumPy緊密集成,可以直接接收NumPy數(shù)組作為輸入數(shù)據(jù),并且能夠方便地處理和呈現(xiàn)這些數(shù)據(jù)。
  • 支持交互式繪圖:除了靜態(tài)圖形,Matplotlib還提供了交互式繪圖的功能,可以通過添加交互元素和事件處理來實(shí)現(xiàn)用戶與圖形的交互操作。

首先,確保你已經(jīng)安裝了matplotlib和NumPy模塊,可以通過以下命令來安裝它們:

pip install matplotlib numpy

接下來,導(dǎo)入需要的模塊:

import matplotlib.pyplot as plt
import numpy as np

2. 繪制折線圖:

x = np.linspace(0, 2*np.pi, 100)  # 在0到2π之間生成100個(gè)點(diǎn)作為x軸坐標(biāo)
y = np.sin(x)                     # 通過sin函數(shù)生成對應(yīng)的y軸坐標(biāo)
plt.plot(x, y)                    # 繪制折線圖
plt.xlabel('x')                   # 設(shè)置x軸標(biāo)簽
plt.ylabel('y')                   # 設(shè)置y軸標(biāo)簽
plt.title('Sin Function')          # 設(shè)置標(biāo)題
plt.show()                        # 顯示圖形

3. 繪制散點(diǎn)圖

x = np.random.rand(100)    # 生成100個(gè)隨機(jī)數(shù)作為x軸坐標(biāo)
y = np.random.rand(100)    # 生成100個(gè)隨機(jī)數(shù)作為y軸坐標(biāo)
plt.scatter(x, y)          # 繪制散點(diǎn)圖
plt.xlabel('x')            # 設(shè)置x軸標(biāo)簽
plt.ylabel('y')            # 設(shè)置y軸標(biāo)簽
plt.title('散點(diǎn)圖')  # 設(shè)置標(biāo)題
plt.show()                 # 顯示圖形

繪制的圖形如下,我們可以看到,標(biāo)題本應(yīng)當(dāng)顯示散點(diǎn)圖,但實(shí)際上顯示的卻是三個(gè)小方格。為什么會(huì)這樣呢?

原因在于 matplotlib 的作者在設(shè)計(jì)時(shí)并沒有直接支持中文,主要原因是中文字體渲染較為復(fù)雜,并且涉及到不同操作系統(tǒng)、字體庫和編程環(huán)境的差異。這使得在繪制中文時(shí)可能遇到各種字體顯示問題,例如亂碼、錯(cuò)位等。但是,我們可以通過一些方法來解決這個(gè)問題。

4.解決中文顯示問題

在使用 matplotlib繪圖時(shí)出現(xiàn)中文顯示問題,可以按照以下步驟解決:

1、配置字體路徑

這種方法是墻裂不推薦的,原因是需要修改matplotlib本身的配置文件,同樣的代碼換個(gè)環(huán)境執(zhí)行,可能中文就顯示異常了,但也在這介紹一下。找到系統(tǒng)中已安裝的中文字體文件,通常位于Windows的C:\Windows\Fonts目錄下,或者其他操作系統(tǒng)中類似的位置。你也可以使用如下代碼查看:

import matplotlib.font_manager as fm
# 獲取系統(tǒng)中所有已安裝的字體信息
font_info = fm.findSystemFonts()
# 輸出每個(gè)字體的名稱和路徑
for font_path in font_info:
    font_prop = fm.FontProperties(fname=font_path)
    font_name = font_prop.get_name()
    print(f"Font Name: {font_name}")
    print(f"Font Path: {font_path}\n")

將字體文件路徑添加到matplotlib的配置文件中??梢栽赑ython中執(zhí)行以下代碼查看matplotlibrc配置文件的所在路徑。

import matplotlib
print(matplotlib.matplotlib_fname())

找到下圖所示這幾行配置,這里我將sans-serif改成 微軟雅黑字體:Microsoft YaHei,并取消這幾行的注釋,運(yùn)行后可以看到中文正常顯示。

2.修改rcParams來達(dá)到效果,這種方法適合用于修改默認(rèn)字體、默認(rèn)樣式等,對于字體個(gè)性化需求較高的圖形,不建議使用此方法。

import matplotlib.pyplot as plt
#####################################
from matplotlib import rcParams
rcParams['font.family'] = 'Microsoft YaHei'

3.設(shè)置FontProperties,推薦使用此方法來對字體進(jìn)行設(shè)置,比較靈活

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.font_manager  import FontProperties
microsoft_yahei_font = FontProperties('Microsoft YaHei')
fang_song_font = FontProperties(fname=r'C:\Windows\Fonts\simfang.ttf')
x = np.random.rand(100)    # 生成100個(gè)隨機(jī)數(shù)作為x軸坐標(biāo)
y = np.random.rand(100)    # 生成100個(gè)隨機(jī)數(shù)作為y軸坐標(biāo)
plt.scatter(x, y)          # 繪制散點(diǎn)圖
plt.xlabel('x軸')            # 設(shè)置x軸標(biāo)簽
plt.ylabel('y軸',fontproperties=microsoft_yahei_font)            # 設(shè)置y軸標(biāo)簽
plt.title('散點(diǎn)圖',fontproperties=fang_song_font)  # 設(shè)置標(biāo)題
plt.show()

繪制的圖形中,可以看到上述設(shè)置字體及未設(shè)置的區(qū)別,推薦使用此方法。

5.劃分子圖

在Matplotlib中,使用子圖(Subplot)可以在一個(gè)繪圖窗口中創(chuàng)建多個(gè)小的坐標(biāo)系,從而將多個(gè)圖形放置在同一個(gè)圖像中,并進(jìn)行靈活的布局。

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
import numpy as np
# 設(shè)置字體為微軟雅黑
font = FontProperties('Microsoft YaHei')
# 生成隨機(jī)數(shù)據(jù)
categories = ['A', 'B', 'C', 'D']
values = np.random.rand(len(categories))
# 創(chuàng)建一個(gè)包含兩個(gè)子圖的畫布
fig, ax = plt.subplots(2, 1)
# 在第一個(gè)子圖上繪制柱狀圖
ax[0].bar(categories, values)
ax[0].set_title('柱狀圖', fontproperties=font)
# 在第二個(gè)子圖上繪制另一個(gè)餅圖
# 生成隨機(jī)數(shù)據(jù)
sizes = np.random.rand(len(categories))
ax[1].pie(sizes, labels=categories, autopct='%1.1f%%')
ax[1].set_title('帶百分比的餅圖',  fontproperties=font)
# 調(diào)整子圖之間的間距和布局
plt.tight_layout()
# 顯示圖形
plt.show()

通過調(diào)整subplots()函數(shù)的參數(shù),你可以創(chuàng)建不同尺寸和布局的子圖,以滿足你的需求。同時(shí),你也可以使用其他的matplotlib繪圖函數(shù)在子圖中繪制各種類型的圖形。

6.總結(jié)

Python的Matplotlib是一個(gè)功能強(qiáng)大的數(shù)據(jù)可視化庫,可以用于創(chuàng)建各種類型的靜態(tài)、動(dòng)態(tài)和交互式圖形。它提供了廣泛的繪圖選項(xiàng)和配置參數(shù),使用戶能夠根據(jù)自己的需求定制圖形。常見的一些用法如下:

1、使用不同的matplotlib繪圖函數(shù)創(chuàng)建所需的圖形,如折線圖、散點(diǎn)圖、柱狀圖、餅圖等。常用的繪圖函數(shù)有plt.plot()plt.scatter()、plt.bar()plt.pie()等。

2、配置圖形屬性:可以使用各種屬性設(shè)置函數(shù)來自定義圖形,如標(biāo)題、坐標(biāo)軸標(biāo)簽、圖例、線型、顏色、標(biāo)記符號(hào)等。常用的屬性設(shè)置函數(shù)有plt.title()、plt.xlabel()、plt.ylabel()plt.legend()、plt.grid()等。

3、顯示圖形:通過調(diào)用plt.show()函數(shù)顯示圖形。該函數(shù)可以在所有繪圖操作完成后調(diào)用,也可以在每次繪制完一個(gè)子圖后調(diào)用,以便逐個(gè)顯示子圖。

4、保存圖形:通過使用plt.savefig()函數(shù)將繪制的圖形保存為文件,常見的文件格式包括PNG、JPEG、PDF等。

5、繪制多個(gè)子圖:使用plt.subplots()函數(shù)可以創(chuàng)建一個(gè)包含多個(gè)子圖的畫布,然后在不同的子圖上繪制不同的圖形??梢允褂盟饕虿季謪?shù)來控制子圖的位置和排列方式。

Matplotlib提供了豐富的樣式選項(xiàng)和布局控制功能,可以幫助美化圖形和調(diào)整圖形的形狀、大小和比例。除了基本的Matplotlib庫外,還有一些擴(kuò)展庫可以進(jìn)一步增強(qiáng)Matplotlib的功能。例如,Seaborn可以提供更漂亮的圖形樣式,Basemap可以繪制地理地圖,3D可視化庫可以創(chuàng)建三維圖形等等。

總之,Matplotlib是Python中最常用和最受歡迎的數(shù)據(jù)可視化庫之一。通過靈活的接口和強(qiáng)大的功能,它可以滿足各種數(shù)據(jù)可視化需求,并幫助用戶以可視化的方式更好地理解和呈現(xiàn)數(shù)據(jù)。

以上就是Python基礎(chǔ)教程之Matplotlib圖形繪制詳解的詳細(xì)內(nèi)容,更多關(guān)于Python Matplotlib圖形繪制的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 如何使用pyinstaller打包32位的exe程序

    如何使用pyinstaller打包32位的exe程序

    這篇文章主要介紹了如何使用pyinstaller打包32位的exe程序,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • Python數(shù)組條件過濾filter函數(shù)使用示例

    Python數(shù)組條件過濾filter函數(shù)使用示例

    數(shù)組條件過濾簡潔實(shí)現(xiàn)方式,使用filter函數(shù),實(shí)現(xiàn)一個(gè)條件判斷函數(shù)即可,示例代碼如下
    2014-07-07
  • 如何利用python實(shí)現(xiàn)把視頻轉(zhuǎn)換成gif圖形

    如何利用python實(shí)現(xiàn)把視頻轉(zhuǎn)換成gif圖形

    將視頻轉(zhuǎn)換為 GIF 圖形的重要性不言而喻,在信息快速傳播和多種社交平臺(tái)廣泛應(yīng)用的背景下,GIF 動(dòng)畫不僅為個(gè)人用戶提供了一種輕松的表達(dá)方式,本文給大家介紹了如何利用python實(shí)現(xiàn)把視頻轉(zhuǎn)換成gif圖形,需要的朋友可以參考下
    2024-10-10
  • Python模塊相關(guān)知識(shí)點(diǎn)小結(jié)

    Python模塊相關(guān)知識(shí)點(diǎn)小結(jié)

    這篇文章主要介紹了Python模塊相關(guān)知識(shí)點(diǎn),總結(jié)分析了Python模塊的功能、原理、使用方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • 如何將已有的python庫添加到pycharm配置

    如何將已有的python庫添加到pycharm配置

    這篇文章主要介紹了如何將已有的python庫添加到pycharm配置問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 在Python中使用HTMLParser解析HTML的教程

    在Python中使用HTMLParser解析HTML的教程

    這篇文章主要介紹了在Python中使用HTMLParser解析HTML的教程,尤其是在用Python制作爬蟲程序的時(shí)候經(jīng)常可以用到,需要的朋友可以參考下
    2015-04-04
  • Python3運(yùn)算符常見用法分析

    Python3運(yùn)算符常見用法分析

    這篇文章主要介紹了Python3運(yùn)算符常見用法,結(jié)合實(shí)例形式分析了Python3算術(shù)運(yùn)算符、邏輯運(yùn)算符、比較運(yùn)算符、位運(yùn)算符等相關(guān)原理與操作技巧,需要的朋友可以參考下
    2020-02-02
  • 使用jupyter?notebook保存python代碼為.py格式問題

    使用jupyter?notebook保存python代碼為.py格式問題

    這篇文章主要介紹了使用jupyter?notebook保存python代碼為.py格式問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 在python中利用GDAL對tif文件進(jìn)行讀寫的方法

    在python中利用GDAL對tif文件進(jìn)行讀寫的方法

    今天小編就為大家分享一篇在python中利用GDAL對tif文件進(jìn)行讀寫的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python中sqllite插入numpy數(shù)組到數(shù)據(jù)庫的實(shí)現(xiàn)方法

    python中sqllite插入numpy數(shù)組到數(shù)據(jù)庫的實(shí)現(xiàn)方法

    本文給大家介紹python中sqllite插入numpy數(shù)組到數(shù)據(jù)庫的實(shí)現(xiàn)方法,在文章底部給大家提到了Python 操作sqlite數(shù)據(jù)庫及保存查詢numpy類型數(shù)據(jù)的實(shí)例代碼,需要的朋友參考下吧
    2021-06-06

最新評(píng)論