目录
箱线图boxplot()函数还提供了丰富的自定义选项箱线图通常用在多组数据比较时补充:plt.boxplot()函数绘制箱图、常用方法实战常用方法总结箱线图
箱线图一般用来展现数据的分布,如上下四分位值、中位数等,也可以直观地展示异常点。Matplotlib提供了boxplot()
函数绘制箱线图。
【资料图】
import matplotlib.pyplot as plt _ = plt.boxplot(range(10)) # 10个数,0-9 plt.show()
箱线图虽然看起来简单,但包含的数据信息非常丰富。在上图中,橙色的线条表示中位数,中间条形的上下边界分别对应上四分位数(75%的数据都小于该值)与下四位分数(25%的数据小于该值),从条形延伸出两条线段,两条线段的终点表示数据的最大值和最小值。
import numpy as np print(np.median(np.arange(10))) # 中位数 print(np.percentile(np.arange(10), 25)) # 下4分位数,也叫第1分位数 print(np.percentile(np.arange(10), 75)) # 上4分位数,也叫第3分位数
4.5 2.25 6.75 Process finished with exit code 0
boxplot()函数还提供了丰富的自定义选项
plt.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None, meanline=None, showmeans=None, showcaps=None, showbox=None, showfliers=None, boxprops=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:设置须的属性,如颜色、粗细、线的类型等。
箱线图通常用在多组数据比较时
下面代码展示了3组简单数据的箱线图,添加凹口、均值点、颜色以及每组的标签。
import matplotlib.pyplot as plt a = plt.boxplot([range(10), range(20), range(30)], patch_artist=True, boxprops={"color": "blue"}, notch=True, showmeans=True, labels=["A", "B", "C"]) plt.show()
补充:plt.boxplot()函数绘制箱图、常用方法
实战
def plt_box_iamge(df): """ snrr的五个范围为[5,10)、[10,15)、[15,20)、[20,30)、[30-),按照五个snrr范围计算对应redchi的箱图 :param df:包含snrr以及redchi的csv数据(dataFrame)。 :return: """ # 根据snrr范围对redchi进行筛选。 df1 = df.loc[df["lam_snrr"] >= 5] redchi_1 = df1.loc[df1["lam_snrr"] < 10].redchi df2 = df.loc[df["lam_snrr"] >= 10] redchi_2 = df2.loc[df2["lam_snrr"] < 15].redchi df3 = df.loc[df["lam_snrr"] >= 15] redchi_3 = df3.loc[df3["lam_snrr"] < 20].redchi df4 = df.loc[df["lam_snrr"] >= 20] redchi_4 = df4.loc[df4["lam_snrr"] < 30].redchi redchi_5 = df.loc[df["lam_snrr"] >= 30].redchi # 绘图 ax = plt.subplot() ax.boxplot([redchi_1, redchi_2, redchi_3, redchi_4, redchi_5]) # 设置轴坐标值刻度的标签 ax.set_xticklabels(["5<=snrr<10", "10<=snrr<15", "15<=snrr<20", "20<=snrr<30", "30<=snrr"], fontsize=8) # 保存图片 plt.savefig("./images/box.jpg") plt.show() if __name__ == "__main__": df = pd.read_csv("./inputfile/lamost6w_new.csv") df_sc = screening(df) # 筛选数据 (lamost数据应该在正常值范围内,不然因为数值差过大会导致绘制不出图像!) plt_box_iamge(df_sc)
常用方法
import matplotlib.pyplot as plt import numpy as np np.random.seed(100) data = np.random.normal(size=(1000,4),loc=0,scale=1) ax = plt.subplot() ax.boxplot(data) # 绘图 ax.set_xlim([0,5]) # 设置x轴值的范围 rotation=30 # ax.set_xticks() # 自定义x轴的值 ax.set_xlabel("xlabel") # 设置x轴的标签 ax.set_xticklabels(["A","B","C","D"], rotation=30,fontsize=10) # 设置x轴坐标值的标签 旋转角度 字体大小 ax.set_title("xcy") # 设置图像标题 ax.legend(labels= ["A","B","C","D"],loc="best",) # 增加图例 ax.text(x=0.2 , y=3.5 , s="test" ,fontsize=12) # 增加注 plt.show()
总结
到此这篇关于PythonMatplotlib绘制箱线图boxplot()函数详解的文章就介绍到这了,更多相关Matplotlib箱线图boxplot()函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 1转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 2充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 3好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 4名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?
- 5亚马逊云科技成立量子网络中心致力解决量子计算领域的挑战
- 6京东绿色建材线上平台上线 新增用户70%来自下沉市场
- 7网红淘品牌“七格格”chuu在北京又开一家店 潮人新宠chuu能红多久
- 8市场竞争加剧,有车企因经营不善出现破产、退网、退市
- 9北京市市场监管局为企业纾困减负保护经济韧性
- 10市场监管总局发布限制商品过度包装标准和第1号修改单