matplotlib之饼图和箱线图

一、plt.pie() 饼图

pie函数格式:
def pie (X, explode=None, labels=None, colors=None, autopct=None,pctdistance=0.6, shadow=False, labeldistance=1.1,startangle=None,radius=None, counterclock=True, wedgeprops=None, textprops=None,center=(0,0), frame=False, rotatelabels=False, hold=None, data=None)

x : (每一块)的比例,如果sum(x) > 1会使用sum(z)归一化
labels : (每一块)饼图外侧显示的说明文字
explode : (每一块)离开中心距离
startangle :起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起;
shadow :在饼图下面画一个阴影。默认值: False,即不画阴影;
labeldistance : label标记的绘制位置,相对于半径的比例,默认值为1.1,如<1则绘制在饼图内侧;
autopct : 控制饼图内百分比设置,可以使用format字符串或者format function’%1.1f’指小数点前后位数(没有用空格补齐) ;
pctdistance : 类似于labeldistance ,指定autopct的位置刻度,默认值为0.6 ;
radius :控制饼图半径,默认值为1 ;
counterclock : 指定指针方向;布尔值,可选参数,默认为: True ,即逆时针。将值改为False即可改为顺时针。
wedgeprops : 字典类型,可选参数,默认值: None。参数字典传递给wedge对象用来画一个饼图。例如:wedgeprops={ ’ linewidth’ :3 }设置wedge线宽为3。
textprops : 设置标签( labels )和比例文字的格式;字典类型,可选参数,默认值为: None。传递给text对象的字典参数。
center : 浮点类型的列表,可选参数,默认值: (0,0). 图标中心位置。
frame : 布尔类型,可选参数,默认值: False。如果是true ,绘制带有表的轴框架。
rotatelabels : 布尔类型,可选参数,默认为: False.如果为True,旋转每个labe 1到指定的角度。

#图一
x = [1,5,2]
plt.pie(x,labels = ["apple","orange","banana"],textprops={'fontsize':20,'color':'blue'})

#图二
x = [1,3,2,5,2]
y = [2,3,4,8,9]
labels = ["面粉","砂糖","奶油","果酱","坚果"]
colors = ["lightgreen","chartreuse","seashell","cyan","mediumpurple"]
plt.pie(x,radius = 0.9,autopct = '%1.lf%%',wedgeprops = dict(edgecolor = 'w'),pctdistance = 0.9,colors = colors)
plt.pie(y,radius = 0.6,autopct = '%1.lf%%',wedgeprops = dict(edgecolor = 'w'),pctdistance = 0.7,colors = colors)
plt.pie([1],colors = 'w',radius = 0.3)
plt.title("不同果酱面包配料百分比")
plt.legend(loc = 1,title = "配料表",labels = labels)
plt.axis("equal")

图一
matplotlib之饼图和箱线图_第1张图片
图二
matplotlib之饼图和箱线图_第2张图片

二、plt.boxplot():箱线图(盒图)

boxplot函数格式:

plt. boxplot(x, notch=None, sym=None, vert=None,whis=None, positions None, widths=None,patch_artist=None,meanline=None,showmeans=Nshowcaps=None,showbox=None,showfliers=Noneboxprops=None,labels=None,flierprops=None,medianprops None, meanprops=None,capprops=None, whiskerprops=None)

X:指定要绘制箱线图的数据;
notch:是否是凹口的形式展现箱线图,默认非凹口:
sym:指定异常点的形状,默认为+号显示:
vert:是否需要将箱线图垂直摆放,默认垂直摆放:
whis:指定上下须与上下四分位的距离,默认为1.5倍的四分位差:positions:指定箱线图的位置,默认为[0,1,2];
widths:指定箱线图的宽度,默认为0.5;
patch artist:是否填充箱体的颜色:
meanline:是否用线的形式表示均值,默认用点来表示:
showmeans:是否显示均值,默认不显示:
showcaps:是否显示箱线图顶端和末端的两条线,默认显示:
showbox:是否显示箱线图的箱体,默认显示:
showfliers:是否显示异常值,默认显示:
boxprops:设置箱体的属性,如边框色,填充色等:
labels:为箱线图添加标签,类似于图例的作用:
filerprops:设置异常值的属性,如异常点的形状、大小、填充色等:
medianprops:设置中位数的属性,如线的类型、粗细等:
meanprops:设置均值的属性,如点的大小、颜色等:
capprops:设置箱线图顶端和束端线条的属性,如颜色、粗细等:
whiskerprops:设置须的属性,如颜色、粗细、线的类型等:

data = [np.random.normal(0, std, 100) for std in range(1, 4)]
fig = plt. figure(figsize = (8, 6))
bplot = plt.boxplot(data, notch = True, sym = 's',vert = True,patch_artist=True)
plt.xticks([y+1 for y in range(len(data))], ['xl','x2','x3'])
plt.xlabel('x')
plt.title('box plot')
colors = [ 'pink','lightblue','lightgreen']
for pathch,color in zip(bplot['boxes'],colors):
    pathch.set_facecolor (color)

matplotlib之饼图和箱线图_第3张图片

三、plt.stem()绘制棉棒图

x = np.linspace(0.5,3*np.pi,20)
y = np.random.randn(20)
plt.stem(x,y,linefmt = '-.',#棉棒的样式
         markerfmt = '*',#棉棒末端的样式
        basefmt = '--',#指定基线的样式
        bottom = 1)

matplotlib之饼图和箱线图_第4张图片

#绘制误差棒图
x = np.linspace(-4,4,10)
y = np.sin(x)
plt.errorbar(x,y,yerr = 0.2,xerr = 0.2, fmt='ro:',#数据点的标记样式和数据点标记的连接样式
             ecolor='g',#误差棒的线条颜色
             elinewidth = 5,#误差棒的线条粗细
             ms = 10, #数据点的大小
             mfc = 'orange' , #数据点的颜色
             mec = 'black', #数据点边缘的颜色
             capsize=10, #误差棒边界横杠的大小
             capthick=5 #误差棒边界横杠的厚度
            )

matplotlib之饼图和箱线图_第5张图片

#带误差棒的柱状图
x = np.arange(5)
y = [66,88,55,99,123]
err = [5,9,6,10,7]
err_attri = dict(elinewidth = 2,ecolor = "black",capsize = 3)
plt.bar(x,y,color = 'b',width = 0.6,align = 'center',yerr = err,error_kw = err_attri)

matplotlib之饼图和箱线图_第6张图片

四、plt.subplot()子图

ax1 = plt.subplot2grid((3,3),(0,0))
ax2 = plt.subplot2grid((3,3),(1,0))
ax3 = plt.subplot2grid((3,3),(0,2),rowspan = 3)
ax4 = plt.subplot2grid((3,3),(2,0),colspan = 2)
ax5 = plt.subplot2grid((3,3),(0,1),rowspan = 2)
x = np.linspace(0,10,100)
y = np.exp(x)
ax1.plot(x,y)

matplotlib之饼图和箱线图_第7张图片

你可能感兴趣的:(matplotlib之饼图和箱线图)