一直以来使用MATLAB绘制科技论文,确实延长了程序猿的寿命,但是
(1)随着MATLAB体积越来越大,仅仅是为了绘图的话实在吃不消了
(2)关于group boxplot没有合适的绘制函数
注:第(2)点可以使用aboxplot增强库解决http://alex.bikfalvi.com/research/advanced_matlab_boxplot/
同时最新版的boxplot更新为boxchart已经解决https://www.mathworks.com/help/matlab/ref/boxchart.html
====================================================
不过随着Python的流行,我也逐渐转向了这个轻巧的工具
现纪录下使用Matplotlib绘制group boxplot的demo,以便后续查找
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
matplotlib.rcParams['font.sans-serif']=['SimHei']
matplotlib.rcParams['axes.unicode_minus']=False
N=8
x1=np.random.randn(3,N)
x2=np.random.randn(3,N)
bplot1=plt.boxplot(x1,patch_artist=True,boxprops = {'color':'orangered','facecolor':'pink'},widths=0.3,positions=[x+1-0.15 for x in range(N)])
bplot2=plt.boxplot(x2,patch_artist=True,boxprops ={'color':'orangered','facecolor':'Azure'},widths=0.3,positions=[x+1+0.15 for x in range(N)])
x_tick_label=[ chr(ord('a')+x) for x in range(N)]
plt.xticks([a+1 for a in range(N)],x_tick_label)
plt.legend(handles=[bplot1["boxes"][0],bplot2["boxes"][0]],labels=['第一组','第二组'])
plt.grid(linestyle=":",color="red")
plt.title('组分类的boxplot')
plt.show()`
代码很清晰,主要的点在于position属性的设置