'Using 'symlog' removes some plots in the graph as done by 'log'. So how to code it will show all plots

I have a problem statement saying: Considering 7 algorithms and 23 problems domains, 30 independent simulations has been carried out for each problems. The results of an individual algorithm for 23 different problems are recorded in column format and each row of the .xls file represents independent simulation results. The task is to make a decisive conclusion about 7 different algorithms and their performance w.r.t each problem domains.

So I had to plot 23 plots, for each problem one plot with values as 7 algorithm .xls files. Values are very random there -ve , +ve, zero

input file: https://drive.google.com/drive/folders/1cXpNNB6-b2HwWLk04KcZqUDMgLYQ33S8?usp=sharing\

My code for the problem is:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

plt.style.use("fivethirtyeight")
sns.set_theme()
sns.color_palette("bright")

directories = [f'alg{i}' for i in range(1, 8)]
Problem = [f'Problem {i}' for i in range(1,24)]
all_data = [0][0]
all_data = [pd.read_excel(f"D:/C++/Programs/Python/Assignment_4/{dir}/alg.xls", header=None) for dir in directories]

fig = plt.figure()
ax = plt.subplot(111)


for j in range(0,23):
    for data_i, dir in zip(all_data, directories):
        plt.bar(dir, data_i[j].mean(),align='center', alpha=0.5)

    plt.yscale('log')
    plt.suptitle(Problem[j])
    plt.show()

which does the work but doesn't shows values in negative one: enter image description hereenter image description here

while using symlog' instead of 'log' shows negative values but also removes some from previous one which was there with 'log'

enter image description hereenter image description here

So how to code so that it will show both values in the graph with no data removing.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source