Я попытался построить множество боксов на основе разных фреймов данных и понял, что, хотя я определяю новую фигуру для каждого боксплота, каждый график отображается на предыдущих боксплотах (поэтому правильно отображается только первый).
Созданный мной фрейм данных:
cpu_util=pd.DataFrame.from_dict(cpu_util)
gpu_util=pd.DataFrame.from_dict(gpu_util)
cpu_mem=pd.DataFrame.from_dict(cpu_mem)
gpu_mem=pd.DataFrame.from_dict(gpu_mem)
disk_c_usage=pd.DataFrame.from_dict(disk_c_usage)
disk_c_fs=pd.DataFrame.from_dict(disk_c_fs)
disk_d_usage=pd.DataFrame.from_dict(disk_d_usage)
disk_d_fs=pd.DataFrame.from_dict(disk_d_fs)
и создание боксов на основе вышеупомянутых фреймов данных:
boxplot =cpu_util.boxplot(rot=90,fontsize=4,grid=True,showfliers=False,whis=[0,100])
fig1 = boxplot.get_figure()
fig1.suptitle('CPU utilization [%]', fontsize=10, fontweight='bold')
boxplot.set_ylabel('Utilization [%]')
boxplot.set_xlabel('Computer name')
boxplot.set_ylim(0,100)
fig1.savefig('cpu_util.pdf')
#### gpu util ####
boxplot2 = gpu_util.boxplot(rot=90,fontsize=4,grid=True,showfliers=False,whis=[0,100])
fig2 = boxplot2.get_figure()
fig2.suptitle('GPU utilization [%]', fontsize=10, fontweight='bold')
boxplot2.set_ylabel('Utilization [%]')
boxplot2.set_xlabel('Computer name')
boxplot2.set_ylim(0,100)
fig2.savefig('gpu_util.pdf')
#### cpu mem ####
boxplot3 = cpu_mem.boxplot(rot=90,fontsize=4,grid=True,showfliers=False,whis=[0,100])
fig3 = boxplot3.get_figure()
fig3.suptitle('CPU memory [%]', fontsize=10, fontweight='bold')
boxplot3.set_ylabel('Memory [%]')
boxplot3.set_xlabel('Computer name')
boxplot3.set_ylim(0,100)
fig3.savefig('cpu_memory.pdf')
Я создаю всего 6 боксов (скопируйте здесь только часть из них, но идея ясна...)
результат, полученный мною для первого коробочного графика (и он составлен правильно):
первый боксплот
и второй (как отмечено, наносится поверх первой и может видеть две зеленые линии для каждого блока вместо одной строки):
второй блок-график
Построение данных не является проблемой.Я проверил, и они построили с правильными значениями.
После долгих проверок, я думаю, проблема в том, что что-то с рисунком определяет, но не может указать на проблему.