经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
Python利用matplotlib.pyplot.boxplot()绘制箱型图实例代码
来源:jb51  时间:2022/8/1 17:09:30  对本文有异议

一、matplotlib.pyplot.boxplot()语法

  1. boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None,
  2. widths=None, patch_artist=None, bootstrap=None, usermedians=None,
  3. conf_intervals=None, meanline=None,showmeans=None, showcaps=None,
  4. showbox=None, showfliers=None, boxprops=None, labels=None, flierprops=None,
  5. medianprops=None, meanprops=None, capprops=None, whiskerprops=None,
  6. manage_ticks=True, autorange=False, zorder=None, *, data=None)
  1. plt.boxplot(
  2. x, # 指定要绘制箱线图的数据
  3. notch=True or False, # 是否是凹口的形式展现箱线图,默认非凹口
  4. sym, # str值,指定异常点的形状,默认为+号显示
  5. vert=True or False, # 是否需要将箱线图垂直摆放,默认True垂直摆放
  6. whis, # float值,指定上下须与上下四分位的距离,默认为1.5倍的四分位差
  7. bootstrap, # int值,指定引导置信区间切口箱线图的中间位置
  8. positions, # 指定箱线图的位置 默认为[0,1,2…]
  9. widths, # 指定箱线图的宽度,默认值:0.5
  10. patch_artist=True or False, # 是否填充箱体的颜色 默认值False不填充
  11. labels, # 为箱线图添加标签,类似于图例的作用
  12. manage_ticks=True or False, # 如果为True,刻度位置和标签将被调整为匹配箱线图的位置。默认值:True
  13. showmeans=True or False, # 是否显示均值,默认值:False不显示
  14. meanline=True or False, # 是否用线的形式表示均值,默认值False用点来表示
  15. zorder, # 箱线图的顺序
  16. showcaps=True or False, # 是否显示箱线图顶端和末端的两条线,默认值True显示
  17. showbox=True or False, # 是否显示箱线图的箱体,默认值True显示;
  18. showfliers=True or False, # 是否显示异常值,默认值True显示;
  19. boxprops, # 设置箱体的属性,如边框色,填充色等;
  20. flierprops, # 设置异常值的属性,如异常点的形状、大小、填充色等;
  21. medianprops, # 设置中位数的属性,如线的类型、粗细等;
  22. meanprops, # 设置均值的属性,如点的大小、颜色等;
  23. capprops, # 设置箱线图顶端和末端线条的属性,如颜色、粗细等;
  24. whiskerprops,# 设置胡须的属性,如颜色、粗细、线的类型等
  25. )

二、绘制箱型图

①绘制简单箱型图

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. data=[np.random.normal(0,std,100) for std in range(1,4)]
  4. plt.boxplot(data)
  5. plt.show()

②各个参数绘制箱型图

(1)notch参数(bool值,是否凹口的形式展现箱线图,默认值False非凹口)

  1. import matplotlib.pyplot as plt
  2. data=[np.random.normal(0,std,100) for std in range(1,4)]
  3. fig=plt.figure()
  4. # notch=True凹口的形式
  5. ax1=fig.add_subplot(121)
  6. plt.boxplot(data,notch=True)
  7. plt.title('凹口的形式',size=20)
  8. # notch=False非凹口的形式
  9. ax2=fig.add_subplot(122)
  10. plt.boxplot(data,notch=False)
  11. plt.title('非凹口的形式',size=20)
  12. plt.show()

(2)sym(str,指定异常点的形状,默认为+号显示)

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. data=[np.random.normal(0,std,100) for std in range(1,4)]
  4. plt.boxplot(data,sym='^')
  5. plt.show()

(3)vert参数(bool值,是否需要将箱线图垂直摆放,默认True垂直摆放)

  1. import matplotlib.pyplot as plt
  2. data=[np.random.normal(0,std,100) for std in range(1,4)]
  3. fig=plt.figure()
  4. # vert=True箱型图垂直摆放
  5. ax1=fig.add_subplot(121)
  6. plt.boxplot(data,vert=True)
  7. plt.title('垂直摆放',size=20)
  8. # vert=False箱型图水平摆放
  9. ax2=fig.add_subplot(122)
  10. plt.boxplot(data,vert=False)
  11. plt.title('水平摆放',size=20)
  12. plt.show()

(4)widths参数(float值,指定箱线图的宽度,默认值:0.5)

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. data=[np.random.normal(0,std,100) for std in range(1,4)]
  4. plt.boxplot(data,widths=[0.3,0.6,0.5])
  5. plt.show()

(5)patch_artist(bool值,是否填充箱体颜色,默认值:False不填充)

  1. import matplotlib.pyplot as plt
  2. data=[np.random.normal(0,std,100) for std in range(1,4)]
  3. fig=plt.figure()
  4. # patch_artist=True填充箱体颜色
  5. ax1=fig.add_subplot(121)
  6. plt.boxplot(data,patch_artist=True)
  7. plt.title('填充箱体颜色',size=20)
  8. # patch_artist=False不填充箱体颜色
  9. ax2=fig.add_subplot(122)
  10. plt.boxplot(data,patch_artist=False)
  11. plt.title('不填充箱体颜色',size=20)
  12. plt.show()

(6)showmeans参数(bool值,是否显示均值,默认值False不显示)

  1. import matplotlib.pyplot as plt
  2. data=[np.random.normal(0,std,100) for std in range(1,4)]
  3. fig=plt.figure()
  4. # showmeans=True显示均值
  5. ax1=fig.add_subplot(121)
  6. plt.boxplot(data,showmeans=True)
  7. plt.title('显示均值',size=20)
  8. # showmeans=False不显示均值
  9. ax2=fig.add_subplot(122)
  10. plt.boxplot(data,showmeans=False)
  11. plt.title('不显示均值',size=20)
  12. plt.show()

(7)meanline参数(bool值,是否用线的形式表示均值,默认值False用点来表示)

注意:只有当showmeans=True时(显示均值时),才看得见效果。

  1. import matplotlib.pyplot as plt
  2. data=[np.random.normal(0,std,100) for std in range(1,4)]
  3. fig=plt.figure()
  4. # meanline=True用线显示均值
  5. ax1=fig.add_subplot(121)
  6. plt.boxplot(data,showmeans=True,meanline=True)
  7. plt.title('用线显示均值',size=20)
  8. # meanline=False用点显示均值
  9. ax2=fig.add_subplot(122)
  10. plt.boxplot(data,showmeans=True,meanline=False)
  11. plt.title('用点显示均值',size=20)
  12. plt.show()

(8)showcaps参数(bool值,是否显示箱线图顶端和末端的两条线,默认值True显示)

  1. import matplotlib.pyplot as plt
  2. data=[np.random.normal(0,std,100) for std in range(1,4)]
  3. fig=plt.figure()
  4. # showcaps=True显示箱线图顶端和末端的两条线
  5. ax1=fig.add_subplot(121)
  6. plt.boxplot(data,showcaps=True)
  7. plt.title('显示',size=20)
  8. # showcaps=False不显示箱线图顶端和末端的两条线
  9. ax2=fig.add_subplot(122)
  10. plt.boxplot(data,showcaps=False)
  11. plt.title('不显示',size=20)
  12. plt.show()

(9)showbox参数(bool值,是否显示箱线图的箱体,默认值True显示)

  1. import matplotlib.pyplot as plt
  2. data=[np.random.normal(0,std,100) for std in range(1,4)]
  3. fig=plt.figure()
  4. # showbox=True显示箱线图的箱体
  5. ax1=fig.add_subplot(121)
  6. plt.boxplot(data,showbox=True)
  7. plt.title('显示',size=20)
  8. # showbox=False不显示箱线图的箱体
  9. ax2=fig.add_subplot(122)
  10. plt.boxplot(data,showbox=False)
  11. plt.title('不显示',size=20)
  12. plt.show()

(10)showfliers参数(bool值,是否显示异常值,默认值True显示)

  1. import matplotlib.pyplot as plt
  2. data=[np.random.normal(0,std,100) for std in range(1,4)]
  3. fig=plt.figure()
  4. # showfliers=True显示异常值
  5. ax1=fig.add_subplot(121)
  6. plt.boxplot(data,showfliers=True)
  7. plt.title('显示',size=20)
  8. # showfliers=False不显示异常值
  9. ax2=fig.add_subplot(122)
  10. plt.boxplot(data,showfliers=False)
  11. plt.title('不显示',size=20)
  12. plt.show()

(11)boxprops参数(设置箱体的属性,如边框色,填充色等)

  1. import matplotlib.pyplot as plt
  2. data=[np.random.normal(0,std,100) for std in range(1,4)]
  3. fig=plt.figure()
  4. # sboxprops={'color':'r'} 设置箱体边框色
  5. ax1=fig.add_subplot(121)
  6. plt.boxplot(data,boxprops={'color':'r'})
  7. plt.title('设置箱体边框色',size=20)
  8. # patch_artist=True 填充箱体颜色
  9. # boxprops={'facecolor':'pink'}设置箱体填充色
  10. ax2=fig.add_subplot(122)
  11. plt.boxplot(data,patch_artist=True,boxprops={'facecolor':'pink'})
  12. plt.title('设置箱体填充色',size=20)
  13. plt.show()

(12) flierprops参数(设置异常值的属性,如异常点的形状、大小、填充色等)

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. data=[np.random.normal(0,std,100) for std in range(1,4)]
  4. plt.boxplot(data,flierprops={'marker':'*'})
  5. plt.show()

(13)medianprops参数(设置中位数的属性,如线的类型、粗细等)

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. data=[np.random.normal(0,std,100) for std in range(1,4)]
  4. plt.boxplot(data,medianprops={'linestyle':':','linewidth':5,'color':'m'})
  5. plt.show()

(14)meanprops参数(设置均值的属性)

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. data=[np.random.normal(0,std,100) for std in range(1,4)]
  4. plt.boxplot(data,showmeans=True,meanprops={'marker':'*'})
  5. plt.show()

(15)capprops参数(设置箱线图顶端和末端线条的属性,如颜色、粗细等)

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. data=[np.random.normal(0,std,100) for std in range(1,4)]
  4. plt.boxplot(data,
  5. showmeans=True,
  6. capprops={'linestyle':'--','color':'m','linewidth':3})
  7. plt.show()

(16)whiskerprops参数(设置须的属性,如颜色、粗细、线的类型等)

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. data=[np.random.normal(0,std,100) for std in range(1,4)]
  4. plt.boxplot(data,
  5. showmeans=True,
  6. whiskerprops={'linestyle':'--','color':'m','linewidth':3})
  7. plt.show()

总结 

到此这篇关于Python利用matplotlib.pyplot.boxplot()绘制箱型图的文章就介绍到这了,更多相关matplotlib.pyplot.boxplot()绘制箱型图内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号