python - pandas boxplot 中 boxplot 的奇怪变化将其与 seaborn pointplot 相结合 - 这是怎么回事?
问题描述
想象一下我有以下数据框
import pandas as pd
import seaborn as sns
import numpy as np
d = {'val': [1, 2,3,4], 'a': [1, 1, 2, 2]}
d2 = {'val': [1, 2], 'a': [1, 2]}
df = pd.DataFrame(data=d)
df2 = pd.DataFrame(data=d2)
这将为我提供两个如下所示的数据框:
df =
val a
0 1 1
1 2 1
2 3 2
3 4 2
和
df2 =
val a
0 1 1
1 2 2
现在我想根据df中的val和a的值创建一个箱线图,即固定一个值a,即1;然后我有两个不同的值 val:1 和 2;然后根据值 {1,2} 在 x=1 创建一个框;然后转到 a=2:基于 a=2,我们有两个值 val={3,4},因此根据值 {3,4} 在 x=2 创建一个框;
然后我想简单地根据df2画一条线,其中a又是我的x轴,val是我的y轴;我这样做的方式如下
ax = df.boxplot(column=['val'], by = ['a'],meanline=True, showmeans=True, showcaps=True,showbox=True)
sns.pointplot(x='a', y='val', data=df2, ax=ax)
问题是 a=1 的框在 a=2 处移动,而 a=2 的框消失了;如果我的代码有错误或者是错误,我会感到困惑;
如果我只是添加箱线图,一切都很好,所以如果我这样做:
ax = df.boxplot(column=['val'], by = ['a'],meanline=True, showmeans=True, showcaps=True,showbox=True)
这些框位于正确的位置,但是一旦我添加了点图,事情似乎就不再起作用了;
有人知道该怎么做吗?
解决方案
推荐阅读
- python - 向图像添加像素级独立噪声
- r - 删除连续重复n次以上的点
- c# - WPF 行为 MouseDown 不触发
- testing - 使用 Pytest 仅输出失败?
- mongodb - 将(小)图像作为文档上传到 MongoDB 的 Bash 脚本?
- delphi - 发现链接到数据集字段的数据感知控件
- python - 将 Python DataFrame 转换为字典列表
- python - Python将十六进制字符串更改为十六进制整数
- python - Python - 遍历列表以计算元音并将数字放入字典中
- javascript - Rocket.Chat 自定义 JavaScript 拦截新消息