Python dessine un graphique linéaire avec des intervalles de confiance

Dans le domaine des statistiques et de l'analyse des données, nous devons souvent comparer les différences entre deux ou plusieurs échantillons de données. Un graphique en courbes avec un intervalle de confiance est un moyen intuitif et couramment utilisé pour afficher les différences de données. Dans cet article, nous expliquerons comment dessiner un ensemble de graphiques linéaires avec des intervalles de confiance en utilisant Python et Matplotlib.

Dans cet article, nous utiliserons le module numpy pour générer des données aléatoires et utiliserons la bibliothèque matplotlib pour la visualisation des données. Plus précisément, nous allons tracer un graphique linéaire de deux ensembles aléatoires de données de température et ajouter des intervalles de confiance à chaque ligne.

1. Préparation des données

Nous devons d'abord préparer des données pour dessiner un graphique linéaire. Ici, nous allons générer deux ensembles de données aléatoires sur la température de l'air et les erreurs standard correspondantes :

import numpy as np

# 生成 x 坐标轴数据,表示时间范围
x = np.arange(0, 365)

# 生成两组随机气温数据和标准误差
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)

2. Ajouter un intervalle de confiance

En statistique, nous utilisons souvent des intervalles de confiance pour exprimer la plage probable de la vraie moyenne d'un échantillon. Dans un graphique en courbes avec des intervalles de confiance, l'intervalle autour de chaque point de données est l'intervalle de confiance pour ce point.

Plus précisément, nous pouvons ajouter des intervalles de confiance aux polylignes à l'aide de la fonction fill_between(). Ici, nous utilisons un niveau de confiance de 95 %, ce qui correspond à 1,96 erreurs standard :

# 绘制带置信区间的折线图
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')

3. Code complet

import numpy as np
import matplotlib.pyplot as plt

font = {
    
    'family':'Times New Roman','size':24}
# 定义 x 坐标轴的数据
x = np.arange(1, 32)

# 定义两组气温数据以及对应的标准误差
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)

# 绘制带置信区间的折线图
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_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')

# 设置图形标题和坐标轴标签
# 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']  # 设置字体
plt.rcParams['font.size'] = 24                # 设置字号为 24

# 显示图形
plt.show()

4. Résultats en cours d'exécution

insérez la description de l'image ici


Cinq, Python dessinant la série précédente du catalogue d'articles

往期Python绘图合集:
1. Python dessine un graphique linéaire simple
2. Python lit les données dans Excel et dessine plusieurs sous-graphiques et plusieurs groupes de graphiques sur une toile
3. Python dessine un histogramme avec des barres d'erreur
4. Python dessine plusieurs sous-graphiques et les affiche séparément
5, Python lit Excel données et dessine des images sur plusieurs axes y
6, Python dessine des histogrammes et embellit | remplit les colonnes avec différentes couleurs
7, Python génère des données de manière aléatoire et utilise des axes y doubles pour dessiner deux graphiques linéaires avec des barres d'erreur
8, Python dessine avec des erreurs Gradient remplissage en couleur des diagrammes à barres avec annotation de données (avancé)
9. Python dessine des diagrammes de dispersion | la taille du point de dispersion et la profondeur de couleur sont déterminées par des valeurs numériques
10. Matplotlib dessine de beaux diagrammes à secteurs | python dessine de beaux diagrammes à secteurs
11. Python lit des données Excel et dessine
des histogrammes et des graphiques linéaires avec des axes y doubles, et les colonnes sont remplies de
couleurs dégradées Données
14, Python dessine une carte de densité
15, Python dessine un graphique linéaire avec un intervalle de confiance


Guess you like

Origin blog.csdn.net/m0_58857684/article/details/130871314