• python画box图并标记


    import pandas as pd
    import random
    import matplotlib.pyplot as plt
    #生成两组0-1之间的随机数。为啥要放在字典里?因为字典的key就是对应横轴的标记,也就是说,我data里面的是a,图中画出来那个横坐标就是a
    plt.rcParams['boxplot.flierprops.markersize'] = 1#设置离群点的圆圈大小,区间是1-6
    data={'a':[random.random() for i in range(10)],'b':[random.random() for i in range(10)]}
    fig, ax = plt.subplots(1, 1, figsize=(6, 4), dpi=300)#声明图片大小
    df = pd.DataFrame(data)#将dict转换为df,目的是为了直接调df的方法,生成box图
    p_box=df.boxplot(return_type='dict')#生成box图  sym='v'这个属性就是设置离群点的样式。
    plt.grid(linestyle="--", alpha=0.3)#设置图片格式
    x = p_box['fliers'][0].get_xdata()#这里是离群点的标记,0是我自己写的默认值,其实是村的离群点对象。比如我这里是a,b两组数据,如果都有离群点的话,那么p_box['fliers'][0]就是a的,p_box['fliers'][1]就是b的
    y = p_box['fliers'][0].get_ydata()#取出离群点对应的值
    y.sort()
    for i in range(len(y)):
        if i > 0:
            plt.annotate(i, xy = (x[i],y[i]), xytext=(x[i]+0.05,y[i]),fontsize=4)#在离群点附近做标记xytext就是添加的标记的坐标,xy 就是离群点位置,i就是标记的数或者文本
        else:
            plt.annotate(i, xy = (x[i],y[i]), xytext=(x[i]+0.05,y[i]),fontsize=4)
    plt.title("test")
    plt.savefig(r'test.jpg')
    plt.clf()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
  • 相关阅读:
    Spring源码系列(补充):详解ApplicationContext
    [Python学习篇] Python列表
    亚商投资顾问 早餐FM/0913
    后台管理系统通用解决方案
    JenkinsNote-服务迁移
    算法设计与分析 SCAU11079 可以移动的石子合并(优先做)
    10.2 调试事件获取DLL装载
    与图相关的一些算法
    国家开放大学 平时作业训练题
    杰理之蓝牙连接设备的 API【篇】
  • 原文地址:https://blog.csdn.net/weixin_39417324/article/details/126974746