Boxplotgenerierung über große Datenmengen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Komisch
User
Beiträge: 2
Registriert: Freitag 4. September 2020, 11:43

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?
Komisch
User
Beiträge: 2
Registriert: Freitag 4. September 2020, 11:43

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.
Antworten