User Tools

Site Tools


other:python:jyp_steps

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
other:python:jyp_steps [2019/05/29 15:59] – [Matplotlib] Improved jypeterother:python:jyp_steps [2019/05/29 18:04] – [Matplotlib] Improved jypeter
Line 185: Line 185:
     - You will usually **initialize matplotlib** with: ''import matplotlib.pyplot as plt''     - You will usually **initialize matplotlib** with: ''import matplotlib.pyplot as plt''
       * in some cases you may also need: ''import matplotlib as mpl''       * in some cases you may also need: ''import matplotlib as mpl''
-      * you may need other matplotlib related modules, for advanced usage+      * later, you may need other matplotlib related modules, for advanced usage
     - You need to know some **matplotlib specific vocabulary**:     - You need to know some **matplotlib specific vocabulary**:
       * a Matplotlib **//Figure//** (or //canvas//) is a graphical window in which you create your plots...       * a Matplotlib **//Figure//** (or //canvas//) is a graphical window in which you create your plots...
-        * example: ''my_figure = plt.figure()''+        * example: ''my_page = plt.figure()''
         * if you need several display windows at the same time, create several figures         * if you need several display windows at the same time, create several figures
         * the [[http://matplotlib.org/faq/usage_faq.html#parts-of-a-figure|parts of a figure]] are often positioned in //normalized coordinates//: ''(0, 0)'' is the bottom left of the figure, and ''(1, 1)'' the top right         * the [[http://matplotlib.org/faq/usage_faq.html#parts-of-a-figure|parts of a figure]] are often positioned in //normalized coordinates//: ''(0, 0)'' is the bottom left of the figure, and ''(1, 1)'' the top right
         * You don't really specify the **page orientation** (//portrait// or //landscape//) of a plot. If you want a portrait plot, it's up to you to create a plot that will look higher than it is large. The idea is not to worry about this and just check the final resulting plot: create a plot, save it, display the resulting png/pdf and then adjust the creation script         * You don't really specify the **page orientation** (//portrait// or //landscape//) of a plot. If you want a portrait plot, it's up to you to create a plot that will look higher than it is large. The idea is not to worry about this and just check the final resulting plot: create a plot, save it, display the resulting png/pdf and then adjust the creation script
           * If you have an idea of the layout of what you want to plot, it may be easier to explicitly specify the figure size/ratio at creation time, and try to //fill// the figure           * If you have an idea of the layout of what you want to plot, it may be easier to explicitly specify the figure size/ratio at creation time, and try to //fill// the figure
-          * ''my_page = plt.figure()'': the ratio of the default figure is ''landscape'', because it is 33% larger than it is high+          * ''my_page = plt.figure()'': the ratio of the default figure is ''landscape'', because it is 33% larger than it is high. Creating a default figure will be OK most of the time!
           * ''my_page = plt.figure(figsize=(width, height))'': create a figure with a custom ratio (sizes are considered to be in inches)           * ''my_page = plt.figure(figsize=(width, height))'': create a figure with a custom ratio (sizes are considered to be in inches)
           * ''my_page = plt.figure(figsize=(8.3, 11.7))'': create a figure that will theoretically fill an A4 size page in portrait mode (check [[https://www.papersizes.org/a-paper-sizes.htm|Dimensions Of A Series Paper Sizes]] if you need more size details)           * ''my_page = plt.figure(figsize=(8.3, 11.7))'': create a figure that will theoretically fill an A4 size page in portrait mode (check [[https://www.papersizes.org/a-paper-sizes.htm|Dimensions Of A Series Paper Sizes]] if you need more size details)
       * a Matplotlib **//Axis//** is a plot inside a Figure... [[http://matplotlib.org/faq/usage_faq.html#parts-of-a-figure|More details]]       * a Matplotlib **//Axis//** is a plot inside a Figure... [[http://matplotlib.org/faq/usage_faq.html#parts-of-a-figure|More details]]
 +        * reserve space for **one plot** that will use most of the available area of the figure/page:
 +          * ''my_plot = my_page.add_subplot(1, 1, 1)'': syntax is ''add_subplot(nrows, ncols, index)''
 +          * ''my_plot = my_page.subplot**s**()''
 +        * create **3 plots on 1 column** (each plot uses the full width of the figure):
 +          * <code>top_plot = my_page.add_subplot(3, 1, 1)
 +middle_plot = my_page.add_subplot(3, 1, 2)
 +bottom_plot = my_page.add_subplot(3, 1, 3)</code>
 +          * the following method is more efficient than add_subplot when there are lots of plots on a page<code>plot_array = my_page.subplots(3, 1)
 +top_plot = plot_array[0]
 +middle_plot = plot_array[1]
 +bottom_plot = plot_array[2]</code>
 +          * creating a figure and axes with a single line: ''my_page, plot_array = **plt**.subplots(3, 1)''
       * a Matplotlib **//Artist//** or //Patch// is //something// (e.g a line, a group of markers, text, the legend...) plotted  on the Figure/Axis       * a Matplotlib **//Artist//** or //Patch// is //something// (e.g a line, a group of markers, text, the legend...) plotted  on the Figure/Axis
     - some resources for having multiple plots on the same figure     - some resources for having multiple plots on the same figure
Line 210: Line 222:
       * ''my_page.savefig('my_plot.pdf')'': save the figure to a pdf file       * ''my_page.savefig('my_plot.pdf')'': save the figure to a pdf file
       * ''my_page.savefig('my_plot.png', dpi=200, transparent=True, bbox_inches='tight')'': save the figure to a png file at a higher resolution than the default (default is 100 dots per inch), with a transparent background and no extra space around the figure       * ''my_page.savefig('my_plot.png', dpi=200, transparent=True, bbox_inches='tight')'': save the figure to a png file at a higher resolution than the default (default is 100 dots per inch), with a transparent background and no extra space around the figure
 +      * display the figure and its plots, and start interacting (zooming, ...) with them:\\ ''plt.show()''
     - some examples are more //pythonic// (ie object oriented) than others, some example mix different styles of coding, all this can be confusing. Try to [[http://matplotlib.org/faq/usage_faq.html#coding-styles|use an object oriented way of doing things]]!     - some examples are more //pythonic// (ie object oriented) than others, some example mix different styles of coding, all this can be confusing. Try to [[http://matplotlib.org/faq/usage_faq.html#coding-styles|use an object oriented way of doing things]]!
     - it may be hard to (remember how to) work with colors. Some examples from the [[https://matplotlib.org/gallery/index.html]] can help you!     - it may be hard to (remember how to) work with colors. Some examples from the [[https://matplotlib.org/gallery/index.html]] can help you!
Line 226: Line 239:
       * Use ''matplotlib_object.set_order(NN)'' to change the order after an object has been created       * Use ''matplotlib_object.set_order(NN)'' to change the order after an object has been created
   - Read the [[http://www.labri.fr/perso/nrougier/teaching/matplotlib/|Matplotlib tutorial by Nicolas Rougier]]   - Read the [[http://www.labri.fr/perso/nrougier/teaching/matplotlib/|Matplotlib tutorial by Nicolas Rougier]]
-  - Download the [[http://matplotlib.org/contents.html|pdf version of the manual]]. **Do not print** the 2800+ pages of the manual! Read the beginner's guide (Chapter //FIVE// of //Part II//) and have a super quick look at the table of contents of the whole document.+  - Download the [[http://matplotlib.org/contents.html|pdf version of the manual]]. **Do not print** the 2300+ pages of the manual! Read the beginner's guide (Chapter //FIVE// of //Part II//) and have a super quick look at the table of contents of the whole document.
  
 ==== Useful matplotlib reference pages ==== ==== Useful matplotlib reference pages ====
other/python/jyp_steps.txt · Last modified: 2025/02/26 11:40 by jypeter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki