2017-06-13 3 views
2

In Excel kann ich ein Diagramm nehmen, die wie folgt aussieht: enter image description hereSeaborn BarPlot Invert-y-Achse und halten x-Achse auf der Unterseite des Diagrammbereich

und machen es so aussehen:

enter image description here

Durch Invertieren der Y-Achse und Einstellen von "Horizontal Axis Crosses" auf "Max".

Ich möchte das gleiche in Seaborn tun. Ich kann die Y_Achse mit .invert_yaxis() umdrehen, aber ich kann nicht die Balken auf der Unterseite des Diagramms wie ich in Excel halten.

import seaborn as sns 
barplot = sns.barplot(x='abc' 
         ,y='def' 
         ,data=df 
         ,ci=None 
        ) 
barplot.invert_yaxis() 
barplot.figure 

Welche produziert etwas wie folgt aus: enter image description here

Wie kann ich die Stangen von oben beginnend bewegen, an der Unterseite zu beginnen?

Ich bin mit Python 3.6 und Seaborn 0.7.1

Meine Frage an diesem einen ähnlich scheint aber diese Frage ist nicht klar, und hat keine Antwort: Pyplot - Invert Y labels without inverting bar chart

Antwort

2

seaborn.barplot ist ein Wrapper für pyplot.bar und Sie können pyplot.bar verwenden die Handlung mit einem umgekehrten Y-Achse und Balken zu erzeugen, die von dem unteren Rand des Diagramms auf einen niedrigeren Wert auf der y-Achse im Bereich:

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

df = pd.DataFrame({"x":range(5), "y": [1,1.2,1.4,1.6,1.8]}) 

plt.bar(df.x, 2*np.ones(len(df))-df.y, bottom= df.y) 
plt.gca().invert_yaxis() 
plt.ylim(2,0) 
plt.show() 

enter image description here

Verwandte Themen