Seite 1 von 1

Boxplotgenerierung über große Datenmengen

Verfasst: Freitag 4. September 2020, 12:01
von Komisch
Hallo liebe Community,

ich wollte gerne für eine große Menge Daten Boxplots generieren, wobei eine Zahl der Boxplots seitlich versetzt zu einander steht, der funktionierende Code existiert auch bereits und sieht wie folgt aus:

Code: Alles auswählen

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as pl
import json
import itertools as it
import os
import tikzplotlib as tikz

a = {}
arr = os.listdir()
print(arr)
with open('./result_1_final/test_results.json', 'r') as f: 
    a = json.load(f)

ampl_times_fbc = [[a[j][i]['find_best_coverage']['ampl_time'] for i in range(len(a[1]))] for j in range(len(a))]
elapsed_time_fbc = [[a[j][i]['find_best_coverage']['elapsed_time'] for i in range(len(a[1]))] for j in range(len(a))]
nodes = [a[i][1]['node_number'] for i in range(len(a))]
partition_sizes = [4,5,6]
nodes_partitions = list(zip(nodes, it.cycle(partition_sizes)))


pl.style.use("ggplot")
fig1, ax1 = pl.subplots()

positions = list(range(1, len(ampl_times_fbc[0::3]) + 1))
bp = []
colors = ['red', 'green', 'blue']
for i in range(len(colors)):
    bp.append(ax1.boxplot(ampl_times_fbc[i::len(colors)], positions, showfliers=False, patch_artist=True))
    positions = [round(i, 1) for i in np.add(positions, 0.2).tolist()]

    for box in bp[i]['boxes']:
        box.set(color = colors[i], linewidth = 2)
        
tikz.save('boxplot.tex')

mpl.use('TKAgg', force = True)
pl.show()
Dieser Code liefert nun die beabsichtigten Boxplots:
Bild

Kann mir jemand verraten, wie ich die 1.2, 1.4, 2.2, 2.4 usw. in den Achsenbezeichnungen ausblenden kann?

Re: Boxplotgenerierung über große Datenmengen

Verfasst: Freitag 4. September 2020, 14:16
von Komisch
Leider kann ich obigen Beitrag nicht mehr bearbeiten, daher hier eine kleine Information:

Das Bild scheint aus irgendwelchen Gründen nicht mehr verfügbar daher:

Bild
https://ibb.co/J3xRjNt
(irgendwas scheint in dem Forum mit Bildern nicht zu funktionieren)

Ursprünglich hatte ich auch eine andere Frage gestellt, welche ich dann durch Zufall selbst beantworten konnte (positions=positions ist bei einer Code-Änderung herausgeflogen bzw. zu "positions" geworden in der Parameterübergabe an boxplot(...) und ich habe den Fehler einfach nicht gesehen)

Daher wäre ein Titel wie "Selektive X-Achsenbezeichnung für Plots mit Matplotlib" passender und damit auch ein anderes Unterforum passender. Leider kann ich diese Änderungen nicht selbst vornehmen.