python+Matplotlib?繪制帶置信區(qū)間的折線圖
在統(tǒng)計學(xué)和數(shù)據(jù)分析領(lǐng)域中,我們常常需要比較兩個或多個樣本數(shù)據(jù)之間的差異。而帶置信區(qū)間的折線圖則是一種直觀且常用的展示數(shù)據(jù)差異的方式。在這篇文章中,我們將講解如何使用 Python 和 Matplotlib 繪制一組帶置信區(qū)間的折線圖。
在本文中,我們將使用 numpy 模塊生成隨機(jī)數(shù)據(jù),并使用 matplotlib 庫實現(xiàn)數(shù)據(jù)可視化。具體而言,我們將繪制兩組隨機(jī)溫度數(shù)據(jù)的折線圖,并為每條折線添加置信區(qū)間。
一、數(shù)據(jù)準(zhǔn)備
我們首先需要準(zhǔn)備一些數(shù)據(jù)來繪制折線圖。在這里,我們將生成兩組隨機(jī)氣溫數(shù)據(jù)和對應(yīng)的標(biāo)準(zhǔn)誤差:
import numpy as np # 生成 x 坐標(biāo)軸數(shù)據(jù),表示時間范圍 x = np.arange(0, 365) # 生成兩組隨機(jī)氣溫數(shù)據(jù)和標(biāo)準(zhǔn)誤差 temp_beijing = np.random.normal(15, 5, 365) se_beijing = np.random.normal(1, 0.3, size=365) temp_shanghai = np.random.normal(18, 4, 365) se_shanghai = np.random.normal(0.8, 0.2, size=365)
二、添加置信區(qū)間
在統(tǒng)計學(xué)中,我們經(jīng)常使用置信區(qū)間來表示樣本的真實均值可能存在的范圍。而在帶置信區(qū)間的折線圖中,每個數(shù)據(jù)點周圍的一段區(qū)間即是該點的置信區(qū)間。
具體而言,我們可以使用 fill_between() 函數(shù)為折線添加置信區(qū)間。在這里,我們使用 95% 的置信水平,即對應(yīng)于 1.96 個標(biāo)準(zhǔn)誤差:
# 繪制帶置信區(qū)間的折線圖 fig, ax = plt.subplots(figsize=(10,6),dpi=300) ax.plot(x, temp_1, color='red', label='City A') ax.plot(x, temp_2, color='blue', label='City B') ax.fill_between(x, temp_beijing-1.96*se_beijing, temp_beijing+1.96*se_beijing, alpha=0.2, color='red') ax.fill_between(x, temp_shanghai-1.96*se_shanghai, temp_shanghai+1.96*se_shanghai, alpha=0.2, color='blue')
三、完整代碼
import numpy as np import matplotlib.pyplot as plt font = {'family':'Times New Roman','size':24} # 定義 x 坐標(biāo)軸的數(shù)據(jù) x = np.arange(1, 32) # 定義兩組氣溫數(shù)據(jù)以及對應(yīng)的標(biāo)準(zhǔn)誤差 temp_1 = np.random.normal(25, 3, 31) se_1 = np.random.normal(1, 0.3, size=31) temp_2 = np.random.normal(28, 4, 31) se_2 = np.random.normal(0.8, 0.2, size=31) # 繪制帶置信區(qū)間的折線圖 fig, ax = plt.subplots(figsize=(10,6),dpi=300) ax.plot(x, temp_1, color='red', label='City A') ax.plot(x, temp_2, color='blue', label='City B') # 繪制置信區(qū)間 ax.fill_between(x, temp_1-1.645*se_1, temp_1+1.645*se_1, alpha=0.2, color='green') ax.fill_between(x, temp_2-1.645*se_2, temp_2+1.645*se_2, alpha=0.2, color='blue') # 設(shè)置圖形標(biāo)題和坐標(biāo)軸標(biāo)簽 # plt.title('Average daily urban temperature change',font) plt.xlabel('Day', font) plt.ylabel('Temperature(℃)', font) # 配置圖例,將其放置在底部中央 plt.legend(loc='best', ncol=2, fontsize=18) # 配置字體和字號 plt.rcParams['font.sans-serif'] = ['Times New Roman'] # 設(shè)置字體 plt.rcParams['font.size'] = 24 # 設(shè)置字號為 24 # 顯示圖形 plt.show()
四、運行結(jié)果
到此這篇關(guān)于python繪制帶置信區(qū)間的折線圖的文章就介紹到這了,更多相關(guān)python折線圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python?argparse的使用步驟(全網(wǎng)最全)
argparse是python的一個命令行參數(shù)解析包,在代碼需要頻繁修改參數(shù)時,方便使用,主要用法就是在命令行輸入自己想要修改的參數(shù),這篇文章主要介紹了python?argparse的使用步驟(全網(wǎng)最全),需要的朋友可以參考下2023-04-04python pandas庫中DataFrame對行和列的操作實例講解
今天小編就為大家分享一篇python pandas庫中DataFrame對行和列的操作實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06Python實現(xiàn)發(fā)送email的幾種常用方法
這篇文章主要介紹了Python實現(xiàn)發(fā)送email的幾種常用方法,非常實用,需要的朋友可以參考下2014-08-08Python實現(xiàn)系統(tǒng)交互(subprocess)
我們幾乎可以在任何操作系統(tǒng)上通過命令行指令與操作系統(tǒng)進(jìn)行交互,本文實現(xiàn)了Python系統(tǒng)交互,具有一定的參考價值,感興趣的可以了解一下2021-07-07用python打開攝像頭并把圖像傳回qq郵箱(Pyinstaller打包)
這篇文章主要介紹了用python打開攝像頭并把圖像傳回qq郵箱,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05