尽管有数千个不同的数据点,plt.boxplot 显示为空白

mat*_*erd 4 python matplotlib boxplot

我有一个长度约为 7000 的 numpy 一维数组。这是一个片段: .2 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1.2 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.4 1.9 1.9 1.9 1.9 1.9 1.9 1.9 1.9 1.9 1.9 1.9 1.9 1.9

当我绘制箱线图时,它显示为空白。当我将其更改为 pandas DF 时,它会正确绘制图表,但是为了使其余代码正常工作,我需要使用 pylab 或 pyplot 绘制它的图表。

这是我的代码:

plt.figure(1) plt.boxplot(array) plt.savefig('test.png')

它看起来是这样的: 在此输入图像描述

如果我使用 plt.plot(array) 绘制它,我得到: 在此输入图像描述

谢谢

Car*_*l H 8

我有同样的错误。第一步是检查是否有任何 NaN 值。一个快速的方法是运行:

import numpy as np
if np.isnan(your_array).any():
  print("There are NaN values, I need to remove")
Run Code Online (Sandbox Code Playgroud)

检查 NaN 值后,您可能会发现仍然看到空白图。我发现解决这个问题的一种方法是直接在轴上绘制。您可以使用以下方法来做到这一点:

fig1, ax1 = plt.subplots()
ax1.set_title('Basic Plot')
ax1.boxplot(your_array)
plt.show()
Run Code Online (Sandbox Code Playgroud)