DAY17 Python做boxplot图常见问题及解决方案

终于做出了想要的boxplot图

1)matplotlib API https://matplotlib.org/api/_as_gen/matplotlib.pyplot.html#module-matplotlib.pyplot

2)解决LInux端没有GUI问题

matplotlib.use('Agg')
import matplotlib.pyplot as plt

#而且必须添加在import matplotlib.pyplot之前,否则无效

3)解决list长度不一致问题

pd.Series(np.array(list))

4)设置颜色和透明度

for i in range(len(bp['boxes'])):
    setp(bp['boxes'][i], color=color[i])  # 设置盒体的颜色
    setp(bp['caps'][i*2], color=color[i])  # 设置上边缘颜色
    setp(bp['caps'][i*2+1], color=color[i])  # 设置下边缘颜色
    setp(bp['whiskers'][i*2], color=color[i])  # 设置上面的须的颜色
    setp(bp['whiskers'][i*2], linestyle='-')  # 设置上面的须为实线
    setp(bp['whiskers'][i*2+1], color=color[i])  # 设置下面的须的颜色
    setp(bp['whiskers'][i*2+1], linestyle='-')  # 设置下面的须为实线
    setp(bp['medians'][i], color=color_palette[i])  # 设置中位线的颜色
    bp['boxes'][i].set_alpha(0.5)  # 设置盒体透明度

5)按列表顺序(而非字典序)生成柱体

plt.xticks(np.arange(len(kinds))+1, kinds)  # 如果没有+1标签会与柱体错开一位,原因不明

6)将纵轴转化为百分数

from matplotlib.ticker import FuncFormatter

def to_percent(temp, position):
    return '%1.0f' % (100 * temp) + '%'

plt.gca().yaxis.set_major_formatter(FuncFormatter(to_percent))

7)网格线

plt.grid(b=None)  # 不显示网格线

8)设置边距

plt.subplots_adjust(left=0.15, bottom=0.4, right=0.95, top=0.95)  # 边距

9)保存结果为pdf

plt.savefig('result.pdf', dpi=1000)  # dpi为分辨率

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pythonboxplot可以使用matplotlib库中pyplot模块里的boxplot()函数。该函数可以接受多个参数来绘制箱线,如指定要绘制箱线的数据、是否展现凹口的形式、是否显示异常值等。 如果要绘制多个箱线,可以使用numpy库生成随机数据,然后使用boxplot()函数进行绘制。使用grid()函数可以显示网格,使用labels参数可以指定每个箱线的标签,使用showmeans参数可以显示均值。 在numpy库中,还提供了quantile()函数,可以直接获取数组的四分位数,例如np.quantile(x, 0.25)可以获取数组x的第一四分位数(Q1)。而在Matplotlib中,可以使用boxplot方法绘制箱线。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python使用plt.boxplot() 参数绘制箱线](https://download.csdn.net/download/weixin_38738005/13713544)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Matplotlib绘制箱线](https://blog.csdn.net/Dream_Gao1989/article/details/120265003)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值