2012-09-10 13 views
10

Posso avere sia twinx che twiny insieme (cioè qualcosa come twinxy)? Voglio mettere un CDF su un grafico a barre in cui l'asse X del grafico a barre è in scala di registro. Non riesco a creare insieme gli Y, perché il grafico a barre dell'intervallo è molto ampio confrontando [0,1] per CDF.matplotlib che usa twinx e twiny insieme (come il twinxy)

Qualche idea?

Grazie,

risposta

18

Se ho capito la tua domanda giusta, si desidera tracciare due cose sullo stesso axes senza condiviso axis. C'è probabilmente un modo migliore per fare questo, ma è possibile impilare twinx(doc) e twiny(doc) come tale

ax # your first axes 
ax_new = ax.twinx().twiny() 

che vi darà segni di graduazione su tutti i lati della trama. ax verrà tracciato in basso e a sinistra, ax_new verrà tracciato in alto e a destra.

+0

Sembra semplice ... Non so perché non sono riuscito a testarlo ... Grazie – Amir

+2

Ottima soluzione, grazie! Quando si utilizza questo metodo ('ax2 = ax1.twinx(). Twiny()'), non sono stato in grado di impostare y_label per il secondo asse, sebbene potessi impostare x_label. Passando a 'ax2 = ax1.twiny(). Twinx()' Sono stato quindi in grado di aggiungere la y_label. Questo, tuttavia, solleva un altro problema in quanto non riesco a disattivare le etichette delle tacche x ('ax2.tick_params (axis = 'x', che = 'both', top = 'off', bottom = 'off', labelbottom = 'off', labeltop = 'off') ') come ero stato in grado di fare prima. Questo metodo sembra interrompere alcune delle funzionalità degli assi e potrebbe richiedere del tempo per aggirare. – Jason

+2

@Jason Questa è una ruga divertente nel modo in cui vengono gestiti gli x/ylabels sugli assi sovrapposti. Potrebbe essere necessario prendere gli assi intermediari e lavorarci sopra. – tacaswell

Problemi correlati