使用seaborn绘制的盒须图不显示箱体和触须。

4
我正在尝试使用seaborn绘制箱线图。我的最小值为“-200,000”,最大值为“1,400,000”。这两个都是异常值。但是我只能得到类似于散点图的图形。
以下是我的代码:
import pandas as pd
import numpy as np
import xlrd

import matplotlib.pyplot as plt
import seaborn as sns

pi_analysis = pd.read_excel(r'C:\PI\PI Analysis.xlsx',
                           sheet_name = 'Raw Data'
                           , header = 0
                           )
print(pi_analysis)
group_segement= pi_analysis[['Segment', 'TOTAL AMOUNT']].groupby('Segment').sum()

print(group_segement)
group_segement_mean= pi_analysis[['Segment', 'TOTAL AMOUNT']].groupby('Segment')
group_segement_mean.mean().head()
group_segement_mean.describe()

sns.boxplot(x="Segment", y="TOTAL AMOUNT",data=pi_analysis)

以下是翻译:

enter image description here

附上图片。尝试更改访问权限,但未成功。有什么建议可以显示盒式图和须线图吗?

更改比例后的新图片。

enter image description here

这是代码部分。然而,它仍然没有给我完整的视图。

ax=sns.boxplot(x='Segment',y='TOTAL AMOUNT',data=pi_analysis)
ax.set_ylim(-10*10^8,10*10^8)

问候, Ren。

2
如果你移除了那些异常值并重新绘制,你会看到什么?看起来盒子可能只是由于数据的规模而被压缩了。 - G. Anderson
@G.Anderson,我已经进行了更改,但仍然没有看到任何改进。有没有办法可以更改比例尺,使得方框不会被压缩? - Ren Lyke
@G.Anderson使用以下代码进行比例缩放:ax=sns.boxplot(x='Segment', y='TOTAL AMOUNT',data=pi_analysis, linewidth = 2.5) ax.set_ylim([-2*10^7,2*10^97)。它确实显示了箱形图。但是,有没有更好的方法呢?因为我无法查看正在绘制的所有数据点。可以根据Y轴最大值将访问转换为百万或十亿。 - Ren Lyke
@G.Anderson 为了找出异常值,我正在尝试使用箱线图,然后希望通过创建新的数据框来将它们从数据中删除。对于每个段落,我无法检查超过40000行以找出异常值。 - Ren Lyke
@G.Anderson 感谢提供链接,我会尝试去除异常值并查看结果。 - Ren Lyke
显示剩余2条评论
2个回答

3
你所看到的压缩箱是由于极端异常值被缩放处理而导致的。很容易删除这些异常值。
Seaborn箱线图将采用Matplotlib参数:
showfliers=False

这将导致仅呈现箱线图,而不显示异常值。

您代码的最后一行应该是:

sns.boxplot(x="Segment", y="TOTAL AMOUNT",data=pi_analysis, showfliers=False) 

0

正如@g-anderson在他的评论中所暗示的那样,箱线图是存在的,只是太小了,你看不到。请考虑以下代码:

d = np.random.random(size=(100,))
d[0] = 100
d[-1] = -100

fig, ax = plt.subplots()
sns.boxplot(data=d, orient='vertical')

enter image description here

如果您想查看箱线图,您可以简单地重新调整y轴的范围以获得更相关的结果:
fig, ax = plt.subplots()
sns.boxplot(data=d, orient='vertical')
ax.set_ylim(-1,2)

enter image description here


1
谢谢建议。我已经调整了比例尺。该图片已被添加到问题中。然而,整个框仍未显示出来。 - Ren Lyke
有什么办法可以修复它吗?我已经尝试了这里的两个答案,但仍然没有显示箱线图。 - cryanbhu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接