Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Teach the object oriented matplotlib API instead of the procedural one. #1

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

akreuzkamp
Copy link

So far in course "202 - Plots mit Matplotlib" the procedural API of matplotlib was taught.
For reasons I recently stated in the feedback form, I think the object oriented API is superior and should be taught from the beginning.
After all, the object oriented API is unavoidable, even this course already used it for the multiple plots section, so it seems logical to teach it from the beginning, given that it only adds 2 lines of boilerplate code per figure and nothing particularly complex for the students to learn.

This pr is a proposal, how the course could look like, teaching the object oriented matplotlib API.

So far in course "202 - Plots mit Matplotlib" the procedural API of
matplotlib was taught. This commit changes the course, to teach the
object oriented API instead, which only adds additional complexity in
the form of 2 lines of boilerplate code per figure, but adds a lot of
flexibility. After all, the ooo API is unavoidable, even this course
already used it for the multiple plots section, so it seems logical to
teach it from the beginning.
After course 202 was changed to teach the object oriented API of
matplotlib instead of the procedural one, this commit changes all
examples in 203 and 302 to use the object oriented API as well.
@nilsvu
Copy link
Owner

nilsvu commented Dec 11, 2016

Hallo @akreuzkamp, danke für deinen Vorschlag.

Ich halte die funktionale API nicht für ganz überflüssig, man kann damit durchaus schneller etwas plotten, ohne sich Gedanken über figures und axes zu machen. Daher denke ich, dass wir schon mit plt.plot beginnen sollten.

  • Im Abschnitt mit mehreren Plots habe ich noch einige Erklärungen hinzugefügt und gebe einen Hinweis zur Arbeitsweise mit Abbildungen und Achsen und der objektorientierten API.
  • Generell ziehe ich Code vor, der präzise ist und damit nur Zeilen enthält, die beim Lesen zum Verständnis beitragen. Wenn es dazu nicht notwendig ist, eine figure oder axis zu erstellen, lasse ich das lieber Matplotlib selbst erledigen.
  • In welcher Situation findest du es sinnvoller, die objektorientierte API zu verwenden? Schau dir mal an, wie ich die Subplots jetzt im Beispiel erstelle, meinst du objektorientiert wär's tatsächlich besser?

@akreuzkamp
Copy link
Author

Ok. Was hältst du davon, die objekt-orientierte API dann ab dem Moment zu benutzen, ab dem die Plots über einen Funktionsaufruf hinausgehen? Sprich ab dem Abschnitt "Plots gestalten", wenn es dann darum geht Axen zu beschriften, Skalen zu verändern, etc.

Dass die funktionale API für sehr einfache, schnelle Plots praktischer (und dann auch "schöner") ist, kann ich nicht abstreiten. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants