最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python繪制帶填充紋理的堆疊圖

 更新時間:2025年07月06日 10:36:23   作者:Code_Verse  
在數(shù)據(jù)分析和可視化中,堆疊條形圖是一種非常有用的工具,能夠直觀地展示不同類別在各個樣本中的分布情況,下面我們來看看具體實現(xiàn)方法吧

在數(shù)據(jù)分析和可視化中,堆疊條形圖是一種非常有用的工具,能夠直觀地展示不同類別在各個樣本中的分布情況。而為堆疊圖添加填充紋理,則可以讓圖表更加美觀且富有層次感。今天,我們將通過 Python 的 Matplotlib 庫來實現(xiàn)這種帶填充紋理的堆疊圖。

一、安裝 Matplotlib 庫

在開始繪制圖表之前,我們需要確保已經(jīng)安裝了 Matplotlib 庫。如果你尚未安裝 Matplotlib,可以通過【win】+【R】打開【運行】,并輸入[cmd],點擊確定,并輸入以下命令進行安裝:

pip install matplotlib

安裝完成后,你就可以在 Python 腳本中導入并使用 Matplotlib 了。

二、數(shù)據(jù)準備

為了繪制堆疊圖,我們需要準備一些數(shù)據(jù)。在本例中,我們使用一個 JSON 格式的數(shù)據(jù)結(jié)構(gòu)來存儲樣本數(shù)、RMSE 值以及類別標簽。以下是數(shù)據(jù)的具體格式:

data = {
    "samples": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
    "RMSE_values": [
        [0.15, 0.2, 0.25],
        [0.3, 0.35, 0.3],
        [0.25, 0.3, 0.35],
        [0.2, 0.25, 0.3],
        [0.18, 0.22, 0.28],
        [0.2, 0.24, 0.29],
        [0.22, 0.26, 0.31],
        [0.19, 0.23, 0.32],
        [0.17, 0.21, 0.33],
        [0.16, 0.2, 0.34],
        [0.14, 0.19, 0.35],
        [0.13, 0.18, 0.36],
        [0.12, 0.17, 0.37]
    ],
    "labels": ["A", "B", "C", "D"]
}

其中:

  • samples 表示樣本編號。
  • RMSE_values 是一個二維列表,每一行對應(yīng)一個樣本,每一列對應(yīng)一個類別的值。
  • labels 是類別的標簽。

三、設(shè)置繪圖風格和字體

在繪制圖表之前,我們需要設(shè)置合適的繪圖風格和字體,以確保圖表的美觀性和可讀性。Matplotlib 提供了多種預(yù)設(shè)的繪圖風格,例如 seaborn-v0_8-colorblind,這種風格適合色盲用戶,能夠提供清晰的視覺效果。

import matplotlib.pyplot as plt

# 檢查可用樣式
print("Available styles:", plt.style.available)

# 設(shè)置繪圖風格和字體
plt.style.use('seaborn-v0_8-colorblind')  # 使用可用的樣式
plt.rcParams.update({
    'font.family': 'SimHei',  
    'font.size': 10,          
    'axes.unicode_minus': False  
})

四、繪制堆疊條形圖并添加紋理

接下來,我們將使用 Matplotlib 的bar方法來繪制堆疊條形圖。為了實現(xiàn)紋理填充,我們需要為每個條形圖指定 hatch 參數(shù)。以下是完整的代碼實現(xiàn):

import numpy as np

# 創(chuàng)建圖形和坐標軸對象,調(diào)整圖形大小為 (10, 6)
fig, ax = plt.subplots(figsize=(10, 6))  # 調(diào)整圖形大小

# 定義顏色和紋理
colors = ['navy', 'teal', 'mediumaquamarine', 'khaki']  # 定義每個類別的顏色
hatches = ['xx', '', '\\\\', '//']  # 定義每個類別的紋理

# 初始化底部位置
bottom = np.zeros(len(data["samples"]))

# 繪制堆疊條形圖并添加紋理
for i, label in enumerate(data["labels"]):
    if i < 3:  # 只有三個類別需要繪制,因為數(shù)據(jù)中只有三個值
        values = [item[i] for item in data["RMSE_values"]]  # 提取每個樣本對應(yīng)類別的值
        # 繪制條形圖,并應(yīng)用顏色和紋理
        bars = ax.bar(data["samples"], values, bottom=bottom, color=colors[i], hatch=hatches[i], label=label, edgecolor='black', width=0.6)
        bottom += values  # 更新底部位置以便堆疊下一個類別

五、添加圖表元素

為了讓圖表更加完整和易于理解,我們需要添加坐標軸標簽、標題、圖例以及網(wǎng)格線。

# 設(shè)置坐標軸標簽和標題
ax.set_xlabel('樣本數(shù)')  # 設(shè)置x軸標簽
ax.set_ylabel('RMSE (米)')  # 設(shè)置y軸標簽
ax.set_title('紋理填充堆疊條形圖')  # 設(shè)置圖表標題為中文
# 添加圖例
ax.legend(loc='upper right')  # 設(shè)置圖例位置
# 設(shè)置網(wǎng)格和坐標軸范圍
ax.grid(True, axis='y', linestyle='--', alpha=0.7)  # 添加網(wǎng)格線
ax.set_ylim(0, 1.5)  # 設(shè)置y軸范圍

六、顯示和保存圖表

最后,我們使用 plt.show() 方法來顯示圖表。如果需要保存圖表,可以使用 plt.savefig() 方法。

# 顯示圖表
plt.show()
# 關(guān)閉繪圖窗口
plt.close()

七、效果展示

運行上述代碼后,你將得到一個帶有填充紋理的堆疊條形圖。每個條形圖的紋理和顏色都清晰可見,能夠直觀地展示不同類別在各個樣本中的分布情況。

八、完整代碼展示

import matplotlib.pyplot as plt
import numpy as np
# 從JSON格式的數(shù)據(jù)中提取需要繪制的圖表信息
data = {
    "samples": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
    "RMSE_values": [
        [0.15, 0.2, 0.25],
        [0.3, 0.35, 0.3],
        [0.25, 0.3, 0.35],
        [0.2, 0.25, 0.3],
        [0.18, 0.22, 0.28],
        [0.2, 0.24, 0.29],
        [0.22, 0.26, 0.31],
        [0.19, 0.23, 0.32],
        [0.17, 0.21, 0.33],
        [0.16, 0.2, 0.34],
        [0.14, 0.19, 0.35],
        [0.13, 0.18, 0.36],
        [0.12, 0.17, 0.37]
    ],
    "labels": ["A", "B", "C", "D"]
}
# 檢查可用樣式
print("Available styles:", plt.style.available)
# 設(shè)置繪圖風格和字體
plt.style.use('seaborn-v0_8-colorblind')  # 使用可用的樣式
# 設(shè)置支持中文的字體
plt.rcParams.update({
    'font.family': 'SimHei',  
    'font.size': 10,          
    'axes.unicode_minus': False  
})
# 創(chuàng)建圖形和坐標軸對象,調(diào)整圖形大小為 (10, 6)
fig, ax = plt.subplots(figsize=(10, 6))  # 調(diào)整圖形大小
# 定義顏色和紋理
colors = ['navy', 'teal', 'mediumaquamarine', 'khaki']  
hatches = ['xx', '', '\\\\', '//']  
# 繪制堆疊條形圖并添加紋理
bottom = np.zeros(len(data["samples"]))  
for i, label in enumerate(data["labels"]):
    if i < 3:  
        values = [item[i] for item in data["RMSE_values"]]  
        # 繪制條形圖,并應(yīng)用顏色和紋理
        bars = ax.bar(data["samples"], values, bottom=bottom, color=colors[i], hatch=hatches[i], label=label, edgecolor='black', width=0.6)
        bottom += values  # 更新底部位置以便堆疊下一個類別
# 設(shè)置坐標軸標簽和標題
ax.set_xlabel('樣本數(shù)')  
ax.set_ylabel('RMSE (米)')  
ax.set_title('紋理填充堆疊條形圖')  
# 添加圖例
ax.legend(loc='upper right')  
# 設(shè)置網(wǎng)格和坐標軸范圍
ax.grid(True, axis='y', linestyle='--', alpha=0.7)  
ax.set_ylim(0, 1.5)  
# 顯示圖表
plt.show()
# 關(guān)閉繪圖窗口
plt.close()

九、總結(jié)

通過 Matplotlib,我們可以輕松地實現(xiàn)帶填充紋理的堆疊圖。這種圖表不僅美觀,還能提供豐富的信息。在實際應(yīng)用中,你可以根據(jù)需要調(diào)整顏色、紋理、字體等參數(shù),以滿足不同的可視化需求。

到此這篇關(guān)于使用Python繪制帶填充紋理的堆疊圖的文章就介紹到這了,更多相關(guān)Python繪制堆疊圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python基礎(chǔ)-特殊方法整理詳解

    Python基礎(chǔ)-特殊方法整理詳解

    python中特殊方法(魔術(shù)方法)是被python解釋器調(diào)用的,我們自己不需要調(diào)用它們,我們統(tǒng)一使用內(nèi)置函數(shù)來使用。本篇文章將對其詳細介紹,感興趣的小伙伴可以參考下面文章的具體內(nèi)容
    2021-09-09
  • 一文帶你掌握Python中多線程和線程池的使用方法

    一文帶你掌握Python中多線程和線程池的使用方法

    Python中的多線程和線程池是其強大的功能之一,可以讓我們更加高效地利用CPU資源,提高程序的運行速度。本文將介紹Python中多線程和線程池的使用方法,并提供一些實用的案例供讀者參考
    2023-04-04
  • Python集成開發(fā)環(huán)境pycharm配置git的實現(xiàn)步驟

    Python集成開發(fā)環(huán)境pycharm配置git的實現(xiàn)步驟

    本文主要介紹了Python集成開發(fā)環(huán)境pycharm配置git的實現(xiàn)步驟,文中通過圖文的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-05-05
  • Appium+Python自動化測試之運行App程序示例

    Appium+Python自動化測試之運行App程序示例

    這篇文章主要介紹了Appium+Python自動化測試之運行App程序示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Python?Black代碼格式化終極指南

    Python?Black代碼格式化終極指南

    Black是一款自動化的Python代碼格式化工具,旨在通過強制一致的代碼格式來提高代碼的可讀性和維護性,本文將深入探討B(tài)lack的使用方法、高級特性以及與其他格式化工具的比較,幫助你更好地理解并成功應(yīng)用Black在你的項目中
    2024-01-01
  • Python時間操作之pytz模塊使用詳解

    Python時間操作之pytz模塊使用詳解

    在學習Python過程中,我們已經(jīng)了解了一些關(guān)于時間操作的庫,如:Python內(nèi)置庫:time,datatime和第三方庫:dateutil,pytz等。本文將詳細講講pytz模塊的使用,需要的可以參考一下
    2022-06-06
  • python利用WordCloud模塊實現(xiàn)詞云繪制

    python利用WordCloud模塊實現(xiàn)詞云繪制

    wordcloud是詞云繪圖模塊,封裝了WordCloud詞云類,是詞云的基本載體,下面小編就來和大家詳細講講如何利用WordCloud模塊實現(xiàn)詞云繪制吧,希望對大家有所幫助
    2023-10-10
  • pytorch 如何自定義卷積核權(quán)值參數(shù)

    pytorch 如何自定義卷積核權(quán)值參數(shù)

    這篇文章主要介紹了pytorch 自定義卷積核權(quán)值參數(shù)的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Django中使用ModelForm生成HTML標簽的方法步驟

    Django中使用ModelForm生成HTML標簽的方法步驟

    在 Django 中,使用 ModelForm 來生成 HTML 表單標簽是一種常見且高效的做法,本文主要介紹了Django中使用ModelForm生成HTML標簽的方法步驟,感興趣的可以了解一下
    2024-01-01
  • Python?from?import導包ModuleNotFoundError?No?module?named找不到模塊問題解決

    Python?from?import導包ModuleNotFoundError?No?module?named

    最近在執(zhí)行python腳本時,from?import的模塊沒有被加載進來,找不到module,這篇文章主要給大家介紹了關(guān)于Python?from?import導包ModuleNotFoundError?No?module?named找不到模塊問題的解決辦法,需要的朋友可以參考下
    2022-08-08

最新評論

凤冈县| 松溪县| 泽州县| 高密市| 通渭县| 延边| 武义县| 建阳市| 独山县| 常熟市| 色达县| 绥滨县| 沧源| 鞍山市| 遵义县| 阿拉尔市| 临澧县| 靖西县| 赤水市| 家居| 隆尧县| 嵊泗县| 云阳县| 霸州市| 集安市| 出国| 阿尔山市| 华安县| 洮南市| 金塔县| 石阡县| 彰化市| 上栗县| 彰武县| 钟祥市| 姜堰市| 肇庆市| 芦溪县| 达孜县| 海宁市| 珲春市|