python箱图实现

下图为四分位图,又称箱图;在数据分析中经常采用箱图作为特征选取一种方式。

快速解释分位图:
在这里插入图片描述

第一四分位数(Q1),又称“较小四分位数”,等于该样本中所有数值由小到大排列后第25%的数字。

第二四分位数 (Q2),又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字。

第三四分位数 (Q3),又称“较大四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。

python箱图:


def DrawMultBoxPic(input_dict, Y_label):

    dict_list_length = []
    for item in input_dict:
        value = np.percentile(input_dict[item], (25, 50, 75), interpolation='midpoint')
        print("分位点=======> ", item)
        print("num25: ", value[0])
        print("num50: ", value[1])
        print("num75: ", value[2])
        temp_length = len(input_dict[item])
        dict_list_length.append(temp_length)

    # 获取最长列表长度
    max_length = max(dict_list_length)
    # 每个列表在后面追加None
    for item in input_dict:
        diff_length = max_length - len(input_dict[item])
        if diff_length > 0:
            for i in range(diff_length):
                input_dict[item].append(None)
    # 绘制箱型图
    zhfont = FontProperties(fname='./fontLib/simsunttc/simsun.ttc', size=22)
    data = pd.DataFrame.from_dict(input_dict)
    medianprops = dict(linestyle='-', linewidth=2, color='red')
    data.boxplot(medianprops=medianprops)
    plt.axis([0, 4, 0, 5])
    plt.grid(axis='y', ls='--', lw=1, color='grey', alpha=3.)
    plt.grid(axis='x', ls='--', lw=1, color='grey', alpha=3.)
    plt.xlabel(u'特征对比',  fontproperties=zhfont)
    plt.ylabel(Y_label,  fontproperties=zhfont)
    plt.title(Y_label,  fontproperties=zhfont)
    imgname = './build_images/' + Y_label + '.png'
    plt.savefig(imgname, bbox_inches='tight')
    plt.show()
   
if __name__ == "__main__":
	   data = {
	            'col1': [1,2,3,4,5],
	            'col2': [2,3,4,5,6,7]
	            }
	    # 该模块可以对不同长度的列表做箱图进行比较,代码仅供分享。
	   	DrawMultBoxPic(data,"box_sample")
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 你可以使用 matplotlib 库来实现箱式图,并通过设置参数来实现浅蓝色的效果。下面是一个简单的示例代码: ```python import matplotlib.pyplot as plt import numpy as np # 生成随机数据 data = np.random.normal(size=(100, 4)) # 设置箱式图样式 boxprops = {'facecolor': 'lightblue', 'linewidth': 1.5} whiskerprops = {'linewidth': 1.5} capprops = {'linewidth': 1.5} medianprops = {'linewidth': 2} # 绘制箱式图 fig, ax = plt.subplots() ax.boxplot(data, boxprops=boxprops, whiskerprops=whiskerprops, capprops=capprops, medianprops=medianprops) # 设置图像标题和标签 ax.set_title('Box plot with light blue color') ax.set_xlabel('Data') ax.set_ylabel('Value') plt.show() ``` 这段代码会生成一个具有浅蓝色箱式图的图像,你可以根据需要调整样式参数。 ### 回答2: Python的箱式图(box plot)是一种用于可视化数据分布的图形。在Python中,我们可以使用Matplotlib库来绘制箱式图,并且可以通过设置参数来改变图形的颜色。 要将箱式图的颜色改为浅蓝色,我们可以使用Matplotlib库中的颜色代码来实现。具体步骤如下: 1. 导入Matplotlib库: ``` import matplotlib.pyplot as plt ``` 2. 创建数据集: ``` data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ``` 3. 绘制箱式图,并设置颜色为浅蓝色: ``` plt.boxplot(data, patch_artist=True, boxprops={'facecolor': 'lightblue'}) ``` 在这里,`patch_artist=True`用于使箱式图具有填充颜色的能力,而`boxprops={'facecolor': 'lightblue'}`则是设置填充颜色为浅蓝色。 4. 添加其他必要的标签和标题: ``` plt.xlabel('数据集') plt.ylabel('数值') plt.title('箱式图示例') ``` 5. 显示图形: ``` plt.show() ``` 通过上述步骤,我们可以使用Matplotlib绘制一个颜色为浅蓝色的箱式图,并在图形中显示数据集、数值和标题。 ### 回答3: Python的箱式图是一种用于可视化数据分布和统计变量的图表类型。要将箱式图的颜色设置为浅蓝色,可以使用Matplotlib库来实现。 首先,在Python中使用Matplotlib库绘制箱式图需要导入相应的模块,代码如下: ```python import matplotlib.pyplot as plt import numpy as np ``` 接下来,我们需要创建一组示例数据用于绘制箱式图,代码如下: ```python np.random.seed(10) data = np.random.normal(100, size=100) ``` 然后,我们可以使用Matplotlib库的箱式图函数`boxplot()`来创建箱式图,并设置颜色为浅蓝色。代码如下: ```python plt.boxplot(data, patch_artist=True, boxprops=dict(facecolor="lightblue")) ``` 在上述代码中,`patch_artist`参数设置为`True`,表示要给箱体添加填充颜色。然后,使用`boxprops`参数设置箱体的颜色为浅蓝色("lightblue")。 最后,我们可以加上一些额外的代码来完善箱式图的显示,例如添加标题和标签。完整的代码如下: ```python import matplotlib.pyplot as plt import numpy as np np.random.seed(10) data = np.random.normal(100, size=100) plt.boxplot(data, patch_artist=True, boxprops=dict(facecolor="lightblue")) plt.title("Boxplot with Light Blue Color") plt.xlabel("Data") plt.ylabel("Values") plt.show() ``` 运行上述代码,就可以得到一个颜色为浅蓝色的箱式图。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值