我想知道是否有人对Matplotlib的盒子里没有的情节传单有异议?
我从字面上复制粘贴到一个python脚本中的这个例子:
http://blog.bharatbhole.com/creating-boxplots-with-matplotlib/
…但是没有显示框图传单(离群值)。有人知道我为什么看不到他们吗?如果这是一个愚蠢的问题,我很抱歉,但我一辈子都弄不明白它为什么不起作用。
## Create data
np.random.seed(10)
collectn_1 = np.random.normal(100, 10, 200)
collectn_2 = np.random.normal(80, 30, 200)
collectn_3 = np.random.normal(90, 20, 200)
collectn_4 = np.random.normal(70, 25, 200)
## combine these different collections into a list
data_to_plot = [collectn_1, collectn_2, collectn_3, collectn_4]
# Create a figure instance
fig = plt.figure(1, figsize=(9, 6))
# Create an axes instance
ax = fig.add_subplot(111)
# Create the boxplot
bp = ax.boxplot(data_to_plot)
我还尝试将
showfliers=True
添加到脚本的最后一行,但它仍然不起作用。这就是我得到的输出:
最佳答案
从图的外观来看,您似乎导入了seaborn模块。在导入Seaborn时,即使明确启用了传单,也有一个带有matplotlib boxplot传单的issue。当Seaborn未导入时,您的代码似乎工作正常:
当Seaborn进口时,您可以执行以下操作:
解决方案1:
假设你已经像这样进口了Seaborn:import seaborn as sns
您可以使用seaborn boxplot函数:sns.boxplot(data_to_plot, ax=ax)
导致:
解决方案2:
如果您想继续使用matplotlib boxplot函数(来自Automatic (whisker-sensitive) ylim in boxplots):ax.boxplot(data_to_plot, sym='k.')
导致:
关于python - Matplotlib框图传单没有显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28908003/