Domanda

Sto avendo una difficoltà a controllare lo zero degli elementi di una trama polare sovrapposta su una trama cartesiana.

Considera questo esempio:

import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(1, 1, marker='*', s=2000, c='r', zorder=2)
ax2 = fig.add_axes(ax.get_position(), frameon=False, polar=True)
ax2.scatter(1., 0.1, marker='*', s=1000, c='b', zorder=1)
plt.xlim(0, 2)
plt.ylim(0, 2)
plt.show()
.

Il risultato è: Inserire l'immagine Descrizione qui

Sembra che matplotlib ignorasse il zorder dei grafici sparpacchi.Mi aspetterei che la stella rossa sia in cima al blu.

Potresti per favore spiegare cosa sto sbagliando qui?

Ho trovato Una domanda , che è simile al mio, ma riguarda invece calze e griglie.Forse è lo stesso bug?

P.S.Sto eseguendo Linux X86_64 con Python 2.7.6 e Matplotlib 1.3.1.

È stato utile?

Soluzione

Il problema è che si sta impostando l'ordine Z dei segni su diversi assi ax e ax2 ma poiché ax2 ha una maggiore Z-order a tutti i grafici in ax.Una soluzione potrebbe essere quella di impostare un ordine Z superiore a ax ma è necessario creare lo sfondo trasparente o impostare frameon=False (e questo è forse non desiderabile per il tuo caso), questa è una dimostrazione di ciò che sto dicendo: Plot:

Inserisci Descrizione dell'immagine qui

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top