首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Matplotlib/Seaborn绘制一个在x轴上有不同范围的值类别的盒形图

Matplotlib/Seaborn绘制一个在x轴上有不同范围的值类别的盒形图
EN

Stack Overflow用户
提问于 2020-09-07 10:03:46
回答 1查看 288关注 0票数 0

我想在x轴上制作一个盒子图,x变量在不同的范围内分裂,例如: 0-5,5-10,10+。是否有一种方法可以在Matplotlib/Seaborn中有效地完成这一任务,而不必基于子设置创建不均匀的新列?因此,对于a下面的示例数据集,我想要一个带有3个框0-5 (1a4j,1a6u,1ahc),5-10 (1brq,1bya),10+ (1bya,1bbs)的盒图( rot_bonds变量)。

代码语言:javascript
运行
复制
    structure rot_bonds no_atoms logP
0   1a4j    3   37  2.46
1   1a6u    4   17  1.58
2   1ahc    0   10  -0.06
3   1bbs    20  51  4.81
4   1brq    5   21  5.51
5   1bya    10  45  -9.75

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-07 10:36:35

通过海运,您可以使用切片作为x轴,例如'no_atoms'作为盒图的y-值:

代码语言:javascript
运行
复制
from matplotlib import pyplot as plt
from io import StringIO
import pandas as pd
import seaborn as sns

s = '''    structure rot_bonds no_atoms logP
0   1a4j    3   37  2.46
1   1a6u    4   17  1.58
2   1ahc    0   10  -0.06
3   1bbs    20  51  4.81
4   1brq    5   21  5.51
5   1bya    10  45  -9.75'''

df = pd.read_csv(StringIO(s), delim_whitespace=True)
sns.boxplot(x=pd.cut(df['rot_bonds'], [0, 5, 10, 1000]), y='no_atoms', data=df)
plt.show()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63775414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档