2017-09-29 8 views
0

Gibt es eine Möglichkeit, einen Abstand zwischen den Ticks und der Wirbelsäule auf einem Liniendiagramm zu definieren? Ich es geschafft haben, die folgenden erstellen (yticks werden von der Wirbelsäule und die Gitterlinien getrennt)matplotlib separate Ticks vom Rücken

enter image description here

Mit dem folgenden Code:

params_1 = { 
      'axes.spines.top': False, 
      'axes.spines.left': False, 
      'axes.spines.right': False, 
      'ytick.major.size': 10, 
     } 
plt.rcParams.update(params_1) 

fig = plt.figure(figsize=(13,6.5)) 
ax = fig.add_subplot(111, facecolor='w') 
ax.set_ylim([5,15]) 
ax.set_xticks([5,10,15,20,25]) 
ax.yaxis.grid() 
ax_xgrid = ax.xaxis.grid(linestyle=':', linewidth=1.5) 
[i.set_marker('o') for i in ax.yaxis.get_ticklines()] 
[i.set_markeredgecolor('w') for i in ax.yaxis.get_ticklines()] 
[i.set_markeredgewidth(4) for i in ax.yaxis.get_ticklines()] 

Das sieht genau das, was ich möchte, aber wenn Speichern Sie die Figur mit Transparenz, dann sehe ich die weißen Kreise um die Yticks. Irgendwelche Ideen, wie man das löst?

Danke,

+0

Können Sie zeigen eine [MCVE] des Codes, der das Diagramm erzeugt, so dass die Menschen leicht, diese Frage zu beantworten, ändern? – ImportanceOfBeingErnest

+0

Ich habe die Frage bearbeitet. Die Hoffnung ist jetzt klarer. – ardms

Antwort

1

Wenn ich richtig verstehe, was Sie fordern, dies leicht getan the tick_params() helper function mit werden kann.

fig, ax = plt.subplots() 
ax.spines['right'].set_visible(False) 
ax.spines['top'].set_visible(False) 
ax.spines['left'].set_visible(False) 
ax.tick_params(axis='y', color='none', pad=50) 
ax.grid() 
plt.show() 

enter image description here

EDIT Ich verstehe nicht, was Sie tun wollten. Was möchten Sie den Abstand zwischen der linken Achse und dem Hauptteil des Grundstücks erhöhen. Verwenden Sie dazu the Spine.set_position() function. Folgendes sollte funktionieren:

fig, ax = plt.subplots() 
ax.spines['right'].set_visible(False) 
ax.spines['top'].set_visible(False) 
ax.spines['left'].set_visible(False) 
ax.spines['left'].set_position(('outward', 20)) 
[i.set_marker('o') for i in ax.yaxis.get_ticklines()] 
ax.grid() 
plt.show() 

enter image description here

+0

Der Pad-Parameter definiert, wenn ich es richtig verstehe, den Abstand zwischen den Labels und den Ticks. Ich möchte den Abstand zwischen den Ticks und dem Rückgrat ändern. Ich habe meine Frage bearbeitet, um sie etwas klarer zu machen. – ardms

+0

Ok, deine Änderungen haben mir geholfen, zu verstehen, was du erreichen wolltest. Ich habe meine Antwort entsprechend bearbeitet –

+0

Das ist genau das, was ich wollte. Vielen Dank – ardms

Verwandte Themen