Python 使用seaborn绘制的框须图不显示框须

Python 使用seaborn绘制的框须图不显示框须,python,seaborn,Python,Seaborn,我正试图用seaborn建立一个盒子和胡须的地块。我的最小值为'-200000',最大值为'1400000'。这两个都是异常值。然而,我得到的图形与散点图有些相似 下面是我的代码 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'

我正试图用seaborn建立一个盒子和胡须的地块。我的最小值为'-200000',最大值为'1400000'。这两个都是异常值。然而,我得到的图形与散点图有些相似

下面是我的代码

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)

附件是图片。已尝试更改访问权限。它不起作用。任何关于如何显示长方体和胡须的建议

更改比例后的新图像

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

ax=sns.boxplot(x='Segment',y='TOTAL AMOUNT',data=pi_analysis)
ax.set_ylim(-10*10^8,10*10^8)
问候,,
任正非。

正如@g-anderson在他的评论中所暗示的,方框图就在那里,它太小了,你看不见。考虑下面的代码:

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

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

如果要查看箱线图,只需将y轴重新缩放到更相关的范围:

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

您看到的压缩框是缩放所适应的极端异常值的结果。剔除异常值非常容易

Seaborn boxplots将采用matplotlib参数:

showfliers=False
这将导致仅绘制长方体和胡须的曲线图,未显示异常值

代码的最后一行是:

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

如果删除这些异常值并重新绘制,您会看到什么?看起来这些盒子可能只是因为盒子的大小而被压缩了data@G.Anderson我做了改变,但仍然没有看到任何改善。有没有一种方法可以改变比例,使它们不会被压缩。@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)
。它确实会显示框。有没有更好的方法来实现这一点。因为我无法查看正在绘制的所有数据点。根据YMy中的最大值将访问权限转换为数百万或数十亿。我的问题是,框图是否是数据的正确表示形式。如果您的范围和四分位数是这样的,那么您可以得到您想要的结果是的,那么我会考虑用你的数据来删除异常值,或者找到另一个更适合你的表示。purpose@G.Anderson为了找出异常值,我尝试使用方框图,然后希望通过创建一个新的dataframe从数据中删除它们。我不可能检查超过40000行来找出异常值每个分段的异常值谢谢你的建议。我已更改了比例。图像已添加到问题中。但是整个方框仍然无法显示。有什么方法可以修复吗?我在这里尝试了两个答案,但仍然没有显示方框图