Boxplot aus dem Wörterbuch mit unterschiedlicher Länge

Ich habe ein Wörterbuch mit der unterschiedlichen Länge der Werte für jeden Schlüssel. Versuchen plot als boxplot, ich kann nicht vorwärts gehen. gibt es eine andere Methode, dies zu tun?

Schrieb ich dazu, aber es funktioniert nicht:

import matplotlib.pyplot as plt 
import matplotlib as mpl 

dict1 = {'Pb': [53.0, 56.0, 56.0, 57.0, 57.0, 57.0, 46.0], 'Pa': [56.0, 55.0], 'Pg': [57.0, 57.0, 58.0, 57.0, 57.0, 57.0, 57.0, 57.0,53.0, 57.0, 55.0, 58.0, 58.0, 58.0, 57.0, 57.0, 57.0, 57.0, 57.0, 55.0, 55.0, 57.0, 57.0, 55.0, 58.0, 58.0, 58.0, 55.0, 58.0, 54.0, 58.0, 57.0, 57.0, 58.0, 55.0, 56.0, 55.0, 55.0, 55.0, 58.0, 56.0, 57.0, 57.0, 57.0, 57.0, 56.0, 57.0, 56.0],'Pf': [54.0], 'Pn': [56.0, 56.0, 55.0, 56.0, 56.0, 56.0], 'Ps': [58.0, 56.0, 57.0, 56.0, 56.0, 55.0, 56.0, 56.0, 56.0, 55.0, 56.0, 56.0, 56.0, 58.0, 57.0, 58.0, 57.0, 57.0, 56.0, 58.0, 56.0, 53.0, 56.0, 56.0, 56.0, 56.0, 56.0, 56.0]}

      # remove from here
for k, v in dict1.iteritems():
      boxplot(k,v) 
      plt.show()

Die Lösung vorgeschlagen und getestet: ersetzen Sie Einfach die interpretation dem text unten. Es funktioniert mit python 3.5

#And include this:
labels, data = [*zip(*dict1.items())]  # 'transpose' items to parallel key, value lists
    plt.boxplot(data)
    plt.xticks(range(1, len(labels) + 1), labels)
    plt.show()
InformationsquelleAutor F.Lira | 2017-12-05



One Reply
  1. 5

    wolltest du alle Werte zusammen?

    [n for v in dict1.values() for n in v] ‚flacht‘ die Liste der Werte

    dann ein boxplot ist eine matplotlib standard-plot https://matplotlib.org/examples/pylab_examples/boxplot_demo.html

    from matplotlib import pyplot as plt
    
    
    plt.boxplot([n for v in dict1.values() for n in v])

    Boxplot aus dem Wörterbuch mit unterschiedlicher Länge

    oder durch Schlüssel

    # Pythopn 3.5+
    labels, data = [*zip(*dict1.items())]  # 'transpose' items to parallel key, value lists
    
    # or backwards compatable    
    labels, data = dict1.keys(), dict1.values()
    
    plt.boxplot(data)
    plt.xticks(range(1, len(labels) + 1), labels)
    plt.show()

    Boxplot aus dem Wörterbuch mit unterschiedlicher Länge

    • Durch Tasten. Das problem war, dass ich nicht nutzen konnte panda und nicht finden die beste Lösung; Toll!
    • „Etiketten, data = [*zip(*dict1.Elemente())] # ‚transponieren‘ Elemente parallel key, value-Listen ^ SyntaxError: invalid syntax‘ Es ist, erscheinen diese nach der Verarbeitung. Haben Sie eine Idee?
    • neu gestartet, Spyder, cut&eingefügt von meiner Antwort, funktioniert einwandfrei, Python 3.6.3 Wahrscheinlich Python-version änderungen zu beiden unpacking und dict.items() google.com/…
    • Mindest-Voraussetzung: Python ist3.5 Es funktioniert
    • labels, data = dict1.keys(), dict1.values() scheint zu funktionieren für die Sammlung der Listen in einer online-2.7-interpreter – wusste nicht, überprüfen Sie die grapics

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.