kann ich DataFrameGroupBy.boxplot (...) verwenden, um eine boxplot in der folgenden Art und Weise zu erstellen:Warum wirft die DataFrameGroupBy.boxplot-Methode einen Fehler, wenn das Argument "subplots = True/False" übergeben wird?
In [15]: df = pd.DataFrame({"gene_length":[100,100,100,200,200,200,300,300,300],
...: "gene_id":[1,1,1,2,2,2,3,3,3],
...: "density":[0.4,1.1,1.2,1.9,2.0,2.5,2.2,3.0,3.3],
...: "cohort":["USA","EUR","FIJ","USA","EUR","FIJ","USA","EUR","FIJ"]})
In [17]: df.groupby("cohort").boxplot(column="density",by="gene_id")
In [18]: plt.show()
Das ist genau das, was ich will, außer, anstatt drei Unterplots zu machen, möchte ich, dass alle Plots in einem Plot liegen (mit unterschiedlichen colo rs für USA, EUR und FIJ). Ich habe versucht,
In [17]: df.groupby("cohort").boxplot(column="density",subplots=False,by="gene_id")
aber es erzeugt den Fehler
KeyError: 'gene_id'
Ich denke, das Problem etwas mit der Tatsache zu tun, dass by="gene_id"
ein Keyword an die matplotlib boxplot Methode gesendet wird. Wenn jemand eine bessere Möglichkeit hat, die Handlung zu erzeugen, nach der ich gesucht habe, vielleicht indem Sie stattdessen DataFrame.boxplot (?) Verwenden, antworten Sie bitte hier. Vielen Dank!
Vielen Dank für diese Antwort. Dies ist eine großartige Lösung für den von mir erstellten Spieldatensatz, insbesondere für die Seaborn-Bibliothek. Da mein Datensatz leider 90 Gene enthält, kann ich mir keinen Platz mehr leisten, Kohorten nebeneinander zu gruppieren. Stattdessen müssen sie vertikal übereinander gestapelt werden. Vielleicht erlaubt Seaborn das? – ecneicS
@ecneicS Ich habe meine Antwort abgeschlossen, schau es dir an –
Fantastisch. Vielen Dank! – ecneicS