一直以来使用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属性的设置