Matplotlib:分组箱线图

🔍

import matplotlib.pyplot as plt
import numpy as np

data_a = [[1,2,5], [5,7,2,2,5], [7,2,5]]
data_b = [[6,4,2], [1,2,5,3,2], [2,3,5,1]]
ticks = ['A', 'B', 'C']

def set_box_color(bp, color):
	plt.setp(bp['boxes'], color=color)
	plt.setp(bp['whiskers'], color=color)
	plt.setp(bp['caps'], color=color)
	plt.setp(bp['medians'], color=color)
	plt.figure()


# print(np.array(range(len(data_a)))*2.0-0.4)
bpl = plt.boxplot(data_a, positions=np.array(range(len(data_a)))2.0-0.4, sym='b+', widths=0.6)
bpr = plt.boxplot(data_b, positions=np.array(range(len(data_b)))2.0+0.4, sym='b+', widths=0.6)
set_box_color(bpl, '#D7191C') # colors are from http://colorbrewer2.org/
set_box_color(bpr, '#2C7BB6')

# draw temporary red and blue lines and use them to create a legend
plt.plot([], c='#D7191C', label='Apples')
plt.plot([], c='#2C7BB6', label='Oranges')
plt.legend()
plt.xticks(range(0, len(ticks) * 2, 2), ticks)
plt.xlim(-2, len(ticks)*2)
plt.ylim(0, 8)
plt.tight_layout()
plt.show()
posted @ 2022-04-09 13:13  灵客风  阅读(268)  评论(0)    收藏  举报