国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Python】在同一圖形中更加優(yōu)雅地繪制多個(gè)子圖

這篇具有很好參考價(jià)值的文章主要介紹了【Python】在同一圖形中更加優(yōu)雅地繪制多個(gè)子圖。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. 引言

數(shù)據(jù)可視化非常重要,有一句俗語叫做一圖頂千言,我相信好多小伙伴應(yīng)該都聽說過這句話;即使是有人第一次聽到,我想應(yīng)該也會覺得贊成,這足以說明數(shù)據(jù)可視化的重要性。我們在前一篇博客中,介紹了如何利用subplot來在一張子圖里繪制多個(gè)子圖,最近我又發(fā)現(xiàn)了一種更加優(yōu)雅地實(shí)現(xiàn),迫不及待地想要和大家分享。

閑話少說,我們直接開始吧!

2. 舉個(gè)栗子

為了更加便捷地實(shí)現(xiàn)在圖一圖像中繪制多個(gè)子圖,這里我強(qiáng)烈安利subplot_mosaic()函數(shù),它使得子圖的布局更加靈活。我們不妨來直接看以下例子:
【Python】在同一圖形中更加優(yōu)雅地繪制多個(gè)子圖

請注意,此時(shí)我們有3個(gè)子圖。圖A將在左上角占據(jù)一個(gè)位置;圖 B 將在圖的左下角占據(jù)一個(gè)位置;同時(shí)圖C將在右側(cè)的頂部和底部占據(jù)兩個(gè)位置?,F(xiàn)在,我們所要做的就是將其轉(zhuǎn)換為Python實(shí)現(xiàn),您會發(fā)現(xiàn)它非常簡單。

3. 代碼實(shí)現(xiàn)

我們使用matplotlib庫中的函數(shù)subplot_mosaic實(shí)現(xiàn)上述功能,代碼如下:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# Data
df = sns.load_dataset('tips')
# Plot with Mosaic
fig = plt.figure(layout= 'constrained')
mosaic = fig.subplot_mosaic('''
                            ac
                            bc
                            ''')

# Plot A
mosaic['a'].bar(df.sex, df.tip, color='coral')
# Plot B
mosaic['b'].scatter(df.total_bill, df.tip, color='forestgreen')
# Plot C
mosaic['c'].boxplot(df.tip, patch_artist=True);

運(yùn)行結(jié)果如下:
【Python】在同一圖形中更加優(yōu)雅地繪制多個(gè)子圖

4. 代碼分析

讓我們仔細(xì)研究一下上述代碼,我們首先開始創(chuàng)建一個(gè)figure,接著創(chuàng)建一個(gè)mosaic變量 , 其中函數(shù)subplot_mosaic的入?yún)樽址W⒁?,代碼中使用ac bc的順序和形狀與上圖相同。通過在右側(cè)重復(fù)c兩次來告訴matplotlib我們希望圖c占據(jù)圖形中的兩個(gè)位置。其余代碼只是常規(guī)的單個(gè)子圖的創(chuàng)建代碼。

我們可以打印一下mosaic 變量的值,可以看到如下:
{'a': <Axes: label='a'>, 'c': <Axes: label='c'>, 'b': <Axes: label='b'>}。
因此,實(shí)質(zhì)上我們調(diào)用subplot_mosaic函數(shù)返回了一個(gè)字典,剩下的就是需要常規(guī)的畫出每個(gè)對應(yīng)位置上的子圖。

5. 改變布局

如果你看懂了上述代碼,那么我們可以輕易的改變上述子圖的布局。
代碼如下:

# Plot with Mosaic
fig = plt.figure(layout= 'constrained', figsize=(12,6))
mosaic = fig.subplot_mosaic('''
                            aaa
                            bcc
                            ''')

# Plot A
mosaic['a'].bar(df.day, df.tip, color='coral')
# Plot B
mosaic['b'].boxplot(df.total_bill, patch_artist=True)
# Plot C
mosaic['c'].scatter(df.total_bill, df.tip, color='forestgreen');

結(jié)果如下:
【Python】在同一圖形中更加優(yōu)雅地繪制多個(gè)子圖

6. 添加標(biāo)題

如果我們需要對上述圖表添加標(biāo)題,該如何實(shí)現(xiàn)呢?實(shí)質(zhì)上我們可以使用一行額外的代碼為整個(gè)圖像添加一個(gè)標(biāo)題。

# Adding a single title to the mosaic

plt.suptitle('''        -- P L O T S --
                - Top Left: Sum of tips by Sex -
                - Bottom Left: Tip by Total Bill -
                - Right: Boxplot of Tips - ''')

結(jié)果如下:
【Python】在同一圖形中更加優(yōu)雅地繪制多個(gè)子圖
什么?你希望對每個(gè)子圖添加一個(gè)標(biāo)題。由于mosaic為一個(gè)字典,那我們可以創(chuàng)建一個(gè)循環(huán),通過遍歷想要的key-value來實(shí)現(xiàn)。代碼如下:

# Define Titles
titles = ['Sum of tips by Sex', 'Tip by Total Bill', 'Boxplot of Tips']

# One title per plot
for ax, g_title in zip(mosaic.items(), titles):
    ax[1].set_title(g_title, fontstyle='italic')

結(jié)果如下:
【Python】在同一圖形中更加優(yōu)雅地繪制多個(gè)子圖

Wow,經(jīng)過一步步美化,最后呈現(xiàn)的結(jié)果果然好看多了。

7. 總結(jié)

我相信在單個(gè)圖形中繪制多個(gè)圖形有助于對比和提升可視化效果的目的,擁有一種使其更簡潔的方法會提升很大的效果,推薦大家多多使用。

您學(xué)廢了嘛?文章來源地址http://www.zghlxwxcb.cn/news/detail-500197.html

到了這里,關(guān)于【Python】在同一圖形中更加優(yōu)雅地繪制多個(gè)子圖的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Python數(shù)據(jù)可視化】matplotlib之設(shè)置子圖:繪制子圖、子圖共享x軸坐標(biāo)、調(diào)整子圖間距、設(shè)置圖片大小

    【Python數(shù)據(jù)可視化】matplotlib之設(shè)置子圖:繪制子圖、子圖共享x軸坐標(biāo)、調(diào)整子圖間距、設(shè)置圖片大小

    文章傳送門 Python 數(shù)據(jù)可視化 matplotlib之繪制常用圖形:折線圖、柱狀圖(條形圖)、餅圖和直方圖 matplotlib之設(shè)置坐標(biāo):添加坐標(biāo)軸名字、設(shè)置坐標(biāo)范圍、設(shè)置主次刻度、坐標(biāo)軸文字旋轉(zhuǎn)并標(biāo)出坐標(biāo)值 matplotlib之增加圖形內(nèi)容:設(shè)置圖例、設(shè)置中文標(biāo)題、設(shè)置網(wǎng)格效果 matplo

    2024年01月18日
    瀏覽(23)
  • Python常見庫matplotlib之多個(gè)子圖繪圖

    Python常見庫matplotlib之多個(gè)子圖繪圖

    第一章 Python常見庫matplotlib之畫圖文字的中文顯示 第二章 Python常見庫matplotlib之畫圖中各個(gè)模塊的含義及修改方式 第三章 Python常見庫matplotlib之多個(gè)子圖繪圖 前兩章介紹了單張圖的繪圖操作,這一章介紹下在一張圖中畫多個(gè)圖的操作。我們把前一篇的程序稍微改動一下,上一

    2024年02月06日
    瀏覽(26)
  • 【100天精通Python】Day63:Python可視化_Matplotlib繪制子圖,子圖網(wǎng)格布局屬性設(shè)置等示例+代碼

    【100天精通Python】Day63:Python可視化_Matplotlib繪制子圖,子圖網(wǎng)格布局屬性設(shè)置等示例+代碼

    ?目錄 1 基本子圖繪制示例 2 子圖網(wǎng)格布局 3 調(diào)整子圖的尺寸 4 多行多列的子圖布局 5 子圖之間的共享軸 6 繪制多個(gè)子圖類型 7 實(shí)戰(zhàn): 繪制一個(gè)大圖,里面包含6個(gè)不同類別的子圖,不均勻布局。 繪制子圖(subplots) 是在Matplotlib中創(chuàng)建多個(gè)子圖的常見任務(wù)。通過子圖,您可以

    2024年02月05日
    瀏覽(32)
  • Python數(shù)據(jù)可視化化第五節(jié)(子圖的繪制及坐標(biāo)軸共享)

    Python數(shù)據(jù)可視化化第五節(jié)(子圖的繪制及坐標(biāo)軸共享)

    matplotlib可以將整個(gè)畫布規(guī)劃成等分布局的m n(行 列)的矩陣區(qū)域,并按照先行后列的·方式對每個(gè)區(qū)域進(jìn)行編號(編號從1開始),之后在選中的某個(gè)區(qū)域或某些區(qū)域中繪制單個(gè)‘或多個(gè)子圖。 使用pyplot的subplot()函數(shù)可以規(guī)劃好的某個(gè)區(qū)域中繪制單個(gè)子圖,subplot()函數(shù)的語法格

    2024年02月02日
    瀏覽(29)
  • python繪制子圖技巧——plt.subplot和plt.subplots、及坐標(biāo)軸修改

    偶然發(fā)現(xiàn) python(matplotlib) 中繪制子圖有兩種方法,一種是 plt.subplot ,另一種是 plt.subplots ,這篇博客說一下這兩種方法的區(qū)別,用法,以及常用的一些函數(shù)。 plt.figure 的作用是定義一個(gè)大的圖紙,可以設(shè)置圖紙的大小、分辨率等,例如 plt.plot() 是直接在當(dāng)前活躍的的axes上面

    2023年04月09日
    瀏覽(21)
  • Seaborn繪制熱力圖的子圖

    Seaborn繪制熱力圖的子圖

    提示:如何繪制三張子圖 繪制的時(shí)候,會出現(xiàn)如下問題 (1)如何繪制1*3的子圖 (2)三個(gè)顯示條,如何只顯示最后一個(gè) 提示:下面就展示詳細(xì)步驟 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 Seaborn是一個(gè)用于在Python中進(jìn)行統(tǒng)計(jì)數(shù)據(jù)可視化的庫。它是建立在Matplotli

    2024年02月11日
    瀏覽(22)
  • 數(shù)據(jù)可視化(六)多個(gè)子圖及seaborn使用

    數(shù)據(jù)可視化(六)多個(gè)子圖及seaborn使用

    1.多個(gè)子圖繪制 2. 3.seaborn使用,首先安裝。如果在pycharm中安裝報(bào)錯(cuò),先安裝Scipy ?

    2024年02月13日
    瀏覽(26)
  • 如何規(guī)范書寫sql語句,讓代碼更加優(yōu)雅

    1.首先uf-8編碼 ????????UTF-8編碼是一種針對Unicode的可變長度字符編碼,可以表示任何字符,在國際化應(yīng)用和多語言環(huán)境中非常常見。因此,在編寫SQL語句時(shí),建議使用UTF-8編碼,避免出現(xiàn)亂碼等問題。 2.主鍵int的定義類型應(yīng)該是bigint 無字符 ? ????????主鍵是數(shù)據(jù)庫表中

    2024年02月06日
    瀏覽(23)
  • 如何在vscode中debug python代碼,包括如何優(yōu)雅地傳入多個(gè)參數(shù)

    如何在vscode中debug python代碼,包括如何優(yōu)雅地傳入多個(gè)參數(shù)

    Visiul Studio Code, 簡稱vscode,是一款輕量級代碼編輯器,其豐富的擴(kuò)展程序使得其可以方便地作為任何語言的編輯器。 本文將講述如何在vscode中對python腳本文件進(jìn)行debug。 本文主要包括debug的兩種方式: 基本debugging(basic debugging):可以解決大部分情況 命令行debugging(command line d

    2024年02月11日
    瀏覽(38)
  • 【數(shù)據(jù)分析之道-Matplotlib(三)】Matplotlib 繪制子圖

    【數(shù)據(jù)分析之道-Matplotlib(三)】Matplotlib 繪制子圖

    ? 作者簡介: i阿極 ,CSDN Python領(lǐng)域新星創(chuàng)作者, 專注于分享python領(lǐng)域知識。 ? 本文錄入于《數(shù)據(jù)分析之道》 ,本專欄針對大學(xué)生、初級數(shù)據(jù)分析工程師精心打造,對python基礎(chǔ)知識點(diǎn)逐一擊破,不斷學(xué)習(xí),提升自我。 ? 訂閱后,可以閱讀《數(shù)據(jù)分析之道》中全部文章內(nèi)容

    2024年02月04日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包