python - sns.Facetgrid 未显示正常分布线并忽略空间警告
问题描述
我正在尝试创建一个Facetgrid
with seaborn 来显示我的所有列分布以及正态分布线以与正常值进行比较。
我的数据框pandas
看起来像这样:
column values
0 P100m 938
0 Plj 1061
0 Psp 773
0 Phj 859
0 P400m 896
... ...
7967 P110h 741
7967 Ppv 804
7967 Pdt 527
7967 Pjt 738
7967 P1500 523
我在其中添加了一个参数,该参数sns.Facetgrid
应该将绘图隔开,这样它们就不会发生冲突。最好我会让它们彼此相邻而不是全部堆叠。我的bins
论点也被忽略了,那里显然没有 20 个。
尽管我density=True
在图中有参数,但我的正常线也没有出现。这是我的代码和我收到的输出图:
g = sns.FacetGrid(df_stacked, row = 'column', gridspec_kws={"wspace":0.4})
g = g.map(plt.hist, "values", stacked=True, bins = 20, density= True)
任何帮助,将不胜感激。
解决方案
你可以做:
import seaborn as sns
g = sns.FacetGrid(df_stacked,col='column',col_wrap=3)
g = g.map(sns.distplot, 'values',bins=20)
我生成了一些随机数据来填充 DataFrame,如下所示:
import random
l = ['P100m', 'Plj', 'Psp', 'Phj', 'P400m', 'P110h', 'Ppv', 'Pdt', 'Pjt', 'P1500']
ints = [random.randint(500,1100) for i in range(7000)]
df_stacked = pd.DataFrame({'column':l*700,'values':ints})
推荐阅读
- laravel - Laravel 7.x 数据库事务自动提交,没有 commit() 命令
- python - 没有名为“pydruid”的模块
- c# - 存储过程有效,但在使用 ExecuteNonQuery 调用时无效
- c++ - 用于迭代二维数组类的列的自定义 STL 兼容迭代器
- express - 为什么评论一直处于待处理状态?
- docker - KVM & Docker 同时运行时出现网络错误
- c - int *p[5] 和通过 malloc 获得的指针有什么区别?
- c - 为什么我的代码在输出中显示奇怪的数字?
- javascript - 带有实时 API 的 Angular 记住我的功能
- javascript - 迭代地图并在方法 Reactjs 中传递值