效果展示:
代码:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pylab import *
plt.figure(figsize=(7.8,6.8))
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']data = {'W': [1,2,3,4,5,6,7,8,10],'H': [1,2,3,10,5,6,7,8,15],'B': [1,8,3,4,5,6,7,8,12]
}
box_1, box_2, box_3 = data['W'], data['H'], data['B']
ax1 = plt.subplot(131)
ax1.set_yscale('log')
labels = 'W','H','B'#图例
plt.boxplot([box_1, box_2, box_3],notch=False, labels = labels,patch_artist = False, boxprops = {'color':'black','linewidth':'2.0'},capprops={'color':'black','linewidth':'2.0'}, widths=0.5, medianprops={'color':'black','linewidth':'2'}) #widths是指每一个box的宽度plt.xlabel("1%",fontsize=24)
plt.ylabel('纵坐标',fontsize=24)
plt.xticks(fontsize=24)
plt.yticks(fontsize=24)# 第二个格子
data1 = {'W': [1,2,3,4,5,6,7,83,10],'H': [1,2,3,10,5,6,57,8,15],'B': [144,85,3,4,5,6,7,83,12]
}
box_1, box_2, box_3 = data1['W'], data1['H'], data1['B']
ax2 = plt.subplot(132, sharex=ax1, sharey=ax1)
setp(ax2.get_yticklabels(), visible=False)
labels = 'W','H','B'#图例
plt.boxplot([box_1, box_2, box_3],notch=False, labels = labels,patch_artist = False, boxprops = {'color':'black','linewidth':'2.0'},capprops={'color':'black','linewidth':'2.0'}, widths=0.5, medianprops={'color':'black','linewidth':'2'}) #medianprops={'color':'green','linewidth':'1.5'}
plt.xlabel("0.5%",fontsize=24)
plt.xticks(fontsize=24)
plt.yticks(fontsize=24)#第三个格子
data2 = {'W': [1,2,3,4,5,6,7,8,10],'H': [1,2,3,10,5,6,7,8,15],'B': [1,8,3,4,5,6,7,8,-12]
}
box_1, box_2, box_3 = data2['W'], data2['H'], data2['B']
ax3 = plt.subplot(133, sharex=ax1, sharey=ax1)
setp(ax3.get_yticklabels(), visible=False)
labels = 'W','H','B'#图例
plt.boxplot([box_1, box_2, box_3],notch=False, labels = labels,patch_artist = False, boxprops = {'color':'black','linewidth':'2.0'},capprops={'color':'black','linewidth':'2.0'},widths=0.5,medianprops={'color':'black','linewidth':'2'})
plt.xlabel("0.1%",fontsize=24)
plt.xticks(fontsize=24)
plt.yticks(fontsize=24)
plt.suptitle('图表总标题',fontsize=32)plt.show()