2017-12-18 3 views
1

Nach dem Ausführen des unten stehenden Codes überlappen sich die Achsen-Tick-Markierungen miteinander. Zu diesem Zeitpunkt kann jeder Marker immer noch eine gute Auflösung haben, wenn der Zoom von plt.show() erscheint. Die durch plt.savefig('fig.png') gespeicherte Zahl würde jedoch ihre Auflösung verlieren. Kann dies auch optimiert werden?Wie werden ausreichend Tick-Marker mit plt.savefig korrekt angezeigt?

enter image description here

from matplotlib.ticker import FuncFormatter 
from matplotlib.pyplot import show 
import matplotlib.pyplot as plt 
import numpy as np 

a=np.random.random((1000,1000)) 

# create scaled formatters/for Y with Atom prefix 
formatterY = FuncFormatter(lambda y, pos: 'Atom {0:g}'.format(y)) 
formatterX = FuncFormatter(lambda x, pos: '{0:g}'.format(x)) 

# apply formatters 
fig, ax = plt.subplots() 
ax.yaxis.set_major_formatter(formatterY) 
ax.xaxis.set_major_formatter(formatterX) 

plt.imshow(a, cmap='Reds', interpolation='nearest') 

# create labels 
plt.xlabel('nanometer') 
plt.ylabel('measure') 
plt.xticks(list(range(0, 1001,10))) 
plt.yticks(list(range(0, 1001,10))) 

plt.savefig('fig.png',bbox_inches='tight') 
plt.show() 
+1

Hilft es, eine Feigengröße festzulegen? – Cleb

+0

Fragen Sie, wie das gezoomte Bild gespeichert wird? – ImportanceOfBeingErnest

Antwort

2

ich glaube, Sie es, indem Sie die Größe der Figur lösen kann, zum Beispiel

fig, ax = plt.subplots() 
fig.set_size_inches(15., 15.) 

Wie @PatrickArtner in den Kommentaren darauf hingewiesen, können Sie vermeiden auch die Überlappung von x-Zecken durch

plt.xticks(list(range(0, 1001, 10)), rotation=90) 

statt

plt.xticks(list(range(0, 1001,10))) 

Der Rest des Codes ist völlig unverändert; Die Ausgabe sieht dann vernünftig aus (ist aber zu groß, um sie hier hochzuladen).

+1

, um das Überschreiben auf der x-Achse zu lindern - Etiketten eine 'plt.xticks (Liste (Bereich (0, 1001,10)), Rotation = 90)' würde viel helfen. - nicht für das kleine bisschen zu beantworten :) vielleicht fügen Sie es zu Ihrem? –

+0

@PatrickArtner: Danke, ich habe es hinzugefügt. – Cleb

Verwandte Themen