Obere und rechte Achse in Matplotlib entfernen, nachdem sie Margen vergrößert haben?

Figur mit gewünschter Größe und Ränder erzeugen:

fig = plt.figure(figsize=(3,5)) ax = plt.Axes(fig,[left,bottom,width,height]) fig.add_axes(ax) 

Dies zusammen mit Legenden, Gitternetzlinien und alles andere gibt mir, was ich erwarte, außer ich kann nicht die obere und rechte Achse entfernen. Ich verwies auf eine ähnliche Frage hier , die mich zu einem matplotlib Beispiel lenkt.

Ich habe es versucht

 ax = Subplot(fig,111) fig.add_subplot(ax) ax.axis["top"].set_visible(False) ax.axis["right"].set_visible(False) 

Stackoverflow würde mir nicht erlauben, ein Bild zu posten, denn ich habe nicht genug Punkte, also hoffe ich, dass meine Zeichnung genügt.

 _________ | | | | | | |_| |_________ 

Die obere und rechte Achse des Frontplots wurden entfernt (was toll ist!), Aber ich habe eine zweite Figur im Rücken, die nichts gezeichnet hat.

Ich habe versucht, die Matplotlib-Seite zu betrachten, aber ich habe immer noch eine harte Zeit zu verstehen, was genau add_axes () und add_subplot () tun.

  • Plot zwei Histogramme zur gleichen Zeit mit Matplotlib
  • Animieren eines bewegten Punktes
  • Einzelne Farben aus einer Farbkarte in Matplotlib bekommen
  • Wie man ein NumPy.recarray mit seinen beiden Ansichten ändert
  • Was passiert mit diesem matplotlib.finance.candlestick2_ochl code?
  • Matplotlib - gestuftes Histogramm mit bereits gebohrten Daten
  • One Solution collect form web for “Obere und rechte Achse in Matplotlib entfernen, nachdem sie Margen vergrößert haben?”

    Hier ist eine Lösung, die zwei Möglichkeiten zeigt, Ihr Problem zu lösen:

     import matplotlib.pyplot as plt from mpl_toolkits.axes_grid.axislines import Subplot left,bottom,width,height= -0.02 , 0.12, 1, 0.9 fig = plt.figure(figsize=(3,5)) ax1 = plt.Axes(fig,[left,bottom,width,height]) ax1.plot([1,2,3,4],'b') # plot on the first axes you created fig.add_axes(ax1) # using subplot you are acually using higher level objects ax2 = Subplot(fig,111) # this addes another axis instance fig.add_subplot(ax2) ax2.axis["top"].set_visible(False) ax2.axis["right"].set_visible(False) ax2.plot([1,2,3,4,5],'r') # thos plots on the second # now comment everything in ax2, and uncomment ax3 # you will get a crude, low level control of axes # but both do what you want... #ax3 = plt.Axes(fig,[left+0.2,bottom-0.2,width,height]) #ax3.plot([1,2,3,4],'g') # plot on the first axes you created #for loc, spine in ax3.spines.iteritems(): # if loc in ['left','bottom']: # spine.set_position(('outward',10)) # outward by 10 points # if loc in ['right','top']: # spine.set_color('none') # don't draw spine #fig.add_axes(ax3) plt.show() 

    Das Bild wird mit dem groben Low-Level-Ax3-Objekt gemacht

    Python ist die beste Programmiersprache der Welt.