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.

  • Wie kann ich die Wirkung von IPythons "Pylab" -Option mit einem Skript neu erstellen?
  • Ggplot Stile in Python
  • Wie kann ich in MatPlotLib ein 3D-Diagramm kommentieren / hervorheben?
  • Python Pandas: Plotten von 100% gestapelten Grafikproblemen
  • Wie installiere ich MatPlotLib auf Mac 10.7 in virtualenv
  • Warum verlangsamt sich meine Pylab-Animation mit jedem Update?
  • 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.