2012-09-10 4 views
10

Kann ich sowohl twinx und twiny zusammen haben (d. H. So etwas wie Twinxy)? Ich möchte eine CDF auf ein Balkendiagramm legen, wo die X-Achse des Balkendiagramms im Log-Maßstab ist. Ich kann die Y nicht zusammen machen, weil der Balken-Plot-Bereich sehr groß ist, wenn man [0,1] für CDF vergleicht.matplotlib mit twinx und twiny zusammen (wie twinxy)

Irgendwelche Ideen?

Danke,

Antwort

18

Wenn ich Ihre Frage richtig verstehen, wollen Sie zwei Dinge auf demselben axes ohne gemeinsamen axis plotten. Es gibt wahrscheinlich einen besseren Weg, dies zu tun, aber Sie können twinx stapeln (doc) und twiny(doc) als solche

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

Welche Sie Markierungen auf allen Seiten des Grundstücks tick geben. ax wird gegen den Boden und links, ax_new wird gegen die Spitze und rechts geplottet.

+0

Scheint einfach zu sein ... Ich weiß nicht, warum ich es nicht getestet habe ... Danke – Amir

+2

Tolle Lösung, danke! Bei Verwendung dieser Methode ('ax2 = ax1.twinx(). Twiny()') konnte ich das y_label für die zweite Achse nicht setzen, obwohl ich das x_label setzen konnte. Durch Umschalten auf 'ax2 = ax1.twiny(). Twinx()' konnte ich dann das y_label hinzufügen. Dies wirft jedoch ein anderes Problem auf, da ich die X-Tick-Labels nicht ausschalten kann ('ax2.tick_params (axis = 'x', was = 'beide', top = 'off', bottom = 'off', labelbottom = 'off', labeltop = 'off') ') wie ich es vorher konnte. Diese Methode scheint einen Teil der Funktionalität der Achsen zu zerstören und kann einige Zeit dauern, um zu arbeiten. – Jason

+2

@Jason Das ist eine komische Falte in wie die x/ylabels auf überlappenden Achsen behandelt werden. Möglicherweise müssen Sie die Zwischenachsen greifen und daran arbeiten. – tacaswell

Verwandte Themen