python/Matplotlib 中绘制多箱线图(boxplot)

本文详细介绍了使用Python的pandas和matplotlib库绘制箱形图的两种方法,包括DataFrame直接绘图和subplot+boxplot组合绘图,展示了如何设置样式、标签及网格线,适用于数据分析与可视化需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

两种绘制方式,不可混淆

一、DataFrame绘制单坐标轴

两种都试一下    可能我的anaconda有点问题   2代码不好用      下次再完善 

1、anaconda

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pylab import *
rcParams['axes.unicode_minus'] = False
rcParams['font.sans-serif'] = ['Simhei']
y1 = (1,2,3,4,5,6,7,8,10)
y2 = (1,2,3,10,5,6,7,8,15)
data = pd.DataFrame({"Seq2seq": y1, "LSTM": y2})
df = pd.DataFrame(data)
df.plot.box()
plt.xlabel("",fontsize=16)
plt.ylabel("",fontsize=16)
plt.grid(linestyle="--", alpha=0.8)
print(df.describe())#显示中位数、上下四分位数、标准偏差等内容
plt.show()

2、原始版本

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

from pylab import *

rcParams['axes.unicode_minus'] = False

rcParams['font.sans-serif'] = ['Simhei']

data = {"B"[1,2,3,4,5,6,7,8,10], "C"[1,2,3,10,5,6,7,8,15], "D"[1,8,3,4,5,6,7,8,12], "E"[1,13,3,4,5,6,11,8,9]} df = pd.DataFrame(data)

df.plot.box()

plt.xlabel("横轴",fontsize=16)

plt.ylabel('纵轴',fontsize=16) plt.grid(linestyle="--", alpha=0.8)

print(df.describe())#显示中位数、上下四分位数、标准偏差等内容

plt.show()

结果如图:

二,subplot+boxplot多图显示

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pylab import *
rcParams['axes.unicode_minus'] = False
rcParams['font.sans-serif'] = ['Simhei']
data = {
    'B': [1,2,3,4,5,6,7,8,10],
    'C': [1,2,3,10,5,6,7,8,15],
    'D': [1,8,3,4,5,6,7,8,12],
    "E": [1,13,3,4,5,6,11,8,9]
}
box_1, box_2, box_3, box_4 = data['B'], data['C'], data['D'], data['E']
plt.subplot(221)
labels = 'B','C','D','E'#图例
plt.boxplot([box_1, box_2, box_3, box_4],notch=False, labels = labels,patch_artist = False, boxprops = {'color':'black','linewidth':'2.0'},
            capprops={'color':'black','linewidth':'2.0'})
plt.xlabel("横轴",fontsize=16)
plt.ylabel('纵轴',fontsize=16)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
data1 = {
    'B': [1,2,3,4,5,6,7,8,10],
    'C': [1,2,3,10,5,6,7,8,15],
    'D': [1,8,3,4,5,6,7,8,12],
    "E": [1,13,3,4,5,6,11,8,9]
}
box_1, box_2, box_3, box_4 = data1['B'], data1['C'], data1['D'], data1['E']
plt.subplot(222)
labels = 'B','C','D','E'#图例
plt.boxplot([box_1, box_2, box_3, box_4],notch=False, labels = labels,patch_artist = False, boxprops = {'color':'black','linewidth':'2.0'},
            capprops={'color':'black','linewidth':'2.0'},medianprops={'color':'green','linewidth':'1.5'})
plt.xlabel("横轴2",fontsize=20)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)

data2 = {
    'B': [1,2,3,4,5,6,7,8,10],
    'C': [1,2,3,10,5,6,7,8,15],
    'D': [1,8,3,4,5,6,7,8,12],
    "E": [1,13,3,4,5,6,11,8,9]
}
box_1, box_2, box_3, box_4 = data2['B'], data2['C'], data2['D'], data2['E']
plt.subplot(223)
labels = 'B','C','D','E'#图例
plt.boxplot([box_1, box_2, box_3, box_4],notch=False, labels = labels,patch_artist = False, boxprops = {'color':'black','linewidth':'2.0'},
            capprops={'color':'black','linewidth':'2.0'})
plt.xlabel("横轴",fontsize=16)
plt.ylabel('纵轴',fontsize=16)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
data3 = {
    'B': [1,2,3,4,5,6,7,8,10],
    'C': [1,2,3,10,5,6,7,8,15],
    'D': [1,8,3,4,5,6,7,8,12],
    "E": [1,13,3,4,5,6,11,8,9]
}
box_1, box_2, box_3, box_4 = data3['B'], data3['C'], data3['D'], data3['E']
plt.subplot(224)
labels = 'B','C','D','E'#图例
plt.boxplot([box_1, box_2, box_3, box_4],notch=False, labels = labels,patch_artist = False, boxprops = {'color':'black','linewidth':'2.0'},
            capprops={'color':'black','linewidth':'2.0'})
plt.xlabel("横轴",fontsize=20)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.show()

结果如图:

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值