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 revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
other:python:jyp_steps [2019/02/19 14:29]
jypeter [Matplotlib] Added notes about subplots
other:python:jyp_steps [2019/05/23 16:06]
jypeter [Matplotlib] added links to add_subplot, add_axes, subplot, subplots ref pages
Line 187: Line 187:
     - some resources for having multiple plots on the same figure     - some resources for having multiple plots on the same figure
       * [[https://​matplotlib.org/​gallery/​recipes/​create_subplots.html#​sphx-glr-gallery-recipes-create-subplots-py|Easily creating subplots]]       * [[https://​matplotlib.org/​gallery/​recipes/​create_subplots.html#​sphx-glr-gallery-recipes-create-subplots-py|Easily creating subplots]]
 +        * [[https://​matplotlib.org/​api/​_as_gen/​matplotlib.figure.Figure.html#​matplotlib.figure.Figure.add_subplot|fig.add_subplot(...)]]
 +        * [[https://​matplotlib.org/​api/​_as_gen/​matplotlib.figure.Figure.html#​matplotlib.figure.Figure.add_axes|fig.add_axes(...)]]
 +        * [[https://​matplotlib.org/​api/​_as_gen/​matplotlib.pyplot.subplot.html|plt.subplot(...)]]
 +        * [[https://​matplotlib.org/​api/​_as_gen/​matplotlib.pyplot.subplots.html|plt.subplots(...)]] with an **s** at the end ([[https://​matplotlib.org/​gallery/​subplots_axes_and_figures/​subplots_demo.html|demo]])
 +        * [[https://​matplotlib.org/​api/​_as_gen/​matplotlib.pyplot.subplots_adjust.html|subplots_adjust]] can be used to change the boundaries
       * [[https://​matplotlib.org/​gallery/​index.html#​subplots-axes-and-figures|Subplots,​ axes and figures]] gallery       * [[https://​matplotlib.org/​gallery/​index.html#​subplots-axes-and-figures|Subplots,​ axes and figures]] gallery
       * [[https://​matplotlib.org/​tutorials/​intermediate/​gridspec.html#​sphx-glr-tutorials-intermediate-gridspec-py|Customizing Figure Layouts Using GridSpec and Other Functions]],​ [[https://​matplotlib.org/​tutorials/​intermediate/​constrainedlayout_guide.html|constrained layout]] and [[https://​matplotlib.org/​tutorials/​intermediate/​tight_layout_guide.html|tight layout]]       * [[https://​matplotlib.org/​tutorials/​intermediate/​gridspec.html#​sphx-glr-tutorials-intermediate-gridspec-py|Customizing Figure Layouts Using GridSpec and Other Functions]],​ [[https://​matplotlib.org/​tutorials/​intermediate/​constrainedlayout_guide.html|constrained layout]] and [[https://​matplotlib.org/​tutorials/​intermediate/​tight_layout_guide.html|tight layout]]
Line 204: Line 209:
   - 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 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.
 +
 +==== Useful reference pages ====
 +
 +  * [[https://​matplotlib.org/​api/​_as_gen/​matplotlib.pyplot.plot.html|plot(...)]]:​ Plot y versus x as lines and/or markers
 +  * [[https://​matplotlib.org/​api/​_as_gen/​matplotlib.pyplot.scatter.html|scatter(...)]]:​ A scatter plot of y vs x with varying marker size and/or color
 +    * The ''​plot''​ function will be faster for scatterplots where markers don't vary in size or color
 +  * [[https://​matplotlib.org/​api/​_as_gen/​matplotlib.lines.Line2D.html|line]] parameters
 +    * ''​linestyle'':​ ''​solid'',​ ''​None'',​ [[https://​matplotlib.org/​api/​_as_gen/​matplotlib.lines.Line2D.html#​matplotlib.lines.Line2D.set_linestyle|other]] ([[https://​matplotlib.org/​examples/​lines_bars_and_markers/​line_styles_reference.html|default styles example]], [[https://​matplotlib.org/​examples/​lines_bars_and_markers/​linestyles.html|custom styles example]])
 +  * [[https://​matplotlib.org/​api/​markers_api.html|marker types]]
 +    * ''​fillstyle'':​ ''​full'',​ ''​None'',​ [[https://​matplotlib.org/​gallery/​lines_bars_and_markers/​marker_fillstyle_reference.html|other]]
 +    * Other attributes: ''​markersize'',​ ''​markerfacecolor''​ (and ''​markerfacecoloralt''​ for dual color markers), ''​markeredgecolor'',​ ''​markeredgewidth''​
 +  * [[https://​matplotlib.org/​api/​colors_api.html|colors]]
 +    * [[https://​matplotlib.org/​gallery/​color/​color_demo.html|color demo]]
 +    * [[https://​matplotlib.org/​examples/​color/​named_colors.html|named colors]]
 +  * [[https://​matplotlib.org/​api/​pyplot_api.html#​matplotlib.pyplot.legend|legend(...)]] ([[https://​matplotlib.org/​examples/​pylab_examples/​legend_demo3.html|legend demo]])
 +    * The legend will //show// the lines (or other objects) that were associated with a //label// with the ''​label=''​ keyword when creating/​updating a plot
 +      * If there are some elements of a plot that you do not want to associate with a legend (e.g. there are several lines with the same color and markers, but you want to plot the legend only once), do not specify a ''​label=''​ keyword for these elements, or add a ''​_''​ at the front of the label strings
 +    * The legend is positioned somewhere (that can be specified) **inside** the plot. In order to place a legend **outside** the plot, use the ''​bbox_to_anchor''​ parameter
 +      * the parameters of ''​bbox_to_anchor''​ are in normalized coordinates of the current (sub)plot:
 +        * ''​(0,​ 0)''​ is the lower left corner of the plot, and ''​(1,​ 1)''​ the upper right corner
 +        * ''​legend(... bbox_to_anchor=(1.05,​ 1.), loc='​upper left', ...)''​ will put the upper left corner of the legend slightly right (''​(1.05,​ 1.)''​) of the upper right corner (''​(1,​ 1)''​) of the plot
 +      * if the legend is outside of the plot, you have to **explicitly provide enough space for the legend on the page**
 +        * e.g. with [[https://​matplotlib.org/​api/​_as_gen/​matplotlib.pyplot.subplots_adjust.html|subplots_adjust]],​ ''​plt.subplots_adjust(right=0.75)''​ will make all the plots use 75% on the left of the page, and leave 25% on the right for the legend
  
 ==== Misc Matplotlib tricks ==== ==== Misc Matplotlib tricks ====
Line 214: Line 242:
  
   * [[http://​journals.plos.org/​ploscompbiol/​article?​id=10.1371/​journal.pcbi.1003833|Ten Simple Rules for Better Figures]]   * [[http://​journals.plos.org/​ploscompbiol/​article?​id=10.1371/​journal.pcbi.1003833|Ten Simple Rules for Better Figures]]
 +  * [[https://​www.machinelearningplus.com/​plots/​top-50-matplotlib-visualizations-the-master-plots-python/​|Top 50 matplotlib Visualizations]]
   * [[http://​seaborn.pydata.org/​|Seaborn]] is a library for making attractive and informative statistical graphics in Python, built on top of matplotlib   * [[http://​seaborn.pydata.org/​|Seaborn]] is a library for making attractive and informative statistical graphics in Python, built on top of matplotlib
     * See also: [[https://​www.datacamp.com/​community/​tutorials/​seaborn-python-tutorial|     * See also: [[https://​www.datacamp.com/​community/​tutorials/​seaborn-python-tutorial|
Line 325: Line 354:
 This is **a really nice and useful document** that is regularly updated and used for the [[https://​www.euroscipy.org/​|EuroScipy]] tutorials. You will learn more things about python, numpy and matplotlib, debugging and optimizing scripts, and also learn about using python for statistics, image processing, machine learning, washing dishes (this is just to check if you have read this page), etc... This is **a really nice and useful document** that is regularly updated and used for the [[https://​www.euroscipy.org/​|EuroScipy]] tutorials. You will learn more things about python, numpy and matplotlib, debugging and optimizing scripts, and also learn about using python for statistics, image processing, machine learning, washing dishes (this is just to check if you have read this page), etc...
  
-===== Quick Reference =====+===== Quick Reference ​and cheat sheets ​=====
  
   * The nice and convenient Python 2.7 Quick Reference: [[http://​rgruet.free.fr/​PQR27/​PQR2.7_printing_a4.pdf|pdf]] - [[http://​rgruet.free.fr/​PQR27/​PQR2.7.html|html]]   * The nice and convenient Python 2.7 Quick Reference: [[http://​rgruet.free.fr/​PQR27/​PQR2.7_printing_a4.pdf|pdf]] - [[http://​rgruet.free.fr/​PQR27/​PQR2.7.html|html]]
Line 331: Line 360:
  
   * Python 3 [[https://​perso.limsi.fr/​pointal/​python:​abrege|Quick reference]] and [[https://​perso.limsi.fr/​pointal/​python:​memento|Cheat sheet]]   * Python 3 [[https://​perso.limsi.fr/​pointal/​python:​abrege|Quick reference]] and [[https://​perso.limsi.fr/​pointal/​python:​memento|Cheat sheet]]
 +
 +  * [[https://​www.cheatography.com/​weidadeyue/​cheat-sheets/​jupyter-notebook/​pdf_bw/​|Jupyter Notebook Keyboard Shortcuts]]
  
 ===== Misc tutorials ===== ===== Misc tutorials =====
Line 371: Line 402:
   * [[https://​www.datacamp.com/​community/​tutorials/​data-science-python-ide|Top 5 Python IDEs For Data Science]]   * [[https://​www.datacamp.com/​community/​tutorials/​data-science-python-ide|Top 5 Python IDEs For Data Science]]
   * [[http://​noeticforce.com/​best-python-ide-for-programmers-windows-and-mac|Python IDE: The10 Best IDEs for Python Programmers]]   * [[http://​noeticforce.com/​best-python-ide-for-programmers-windows-and-mac|Python IDE: The10 Best IDEs for Python Programmers]]
 +  * [[https://​www.techbeamers.com/​best-python-ide-python-programming/​|Get the Best Python IDE]]
   * [[https://​wiki.python.org/​moin/​IntegratedDevelopmentEnvironments]]   * [[https://​wiki.python.org/​moin/​IntegratedDevelopmentEnvironments]]
  
other/python/jyp_steps.txt · Last modified: 2024/03/07 10:15 by jypeter