This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
other:python:matplotlib_by_jyp [2021/10/26 09:26] jypeter Added the unsorted stuff section |
other:python:matplotlib_by_jyp [2023/10/25 13:39] jypeter Updated link to anatomy/parts of a figure |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Working with matplotlib (JYP version) ====== | ====== Working with matplotlib (JYP version) ====== | ||
+ | |||
+ | <note tip>Note: [[https://matplotlib.org/cheatsheets/|Matplotlib cheatsheets]] ([[https://github.com/matplotlib/cheatsheets#cheatsheets-for-matplotlib-users|pdf version]])</note> | ||
**Summary**: there are lots of python libraries that you can use for plotting, but Matplotlib has become a //de facto// standard | **Summary**: there are lots of python libraries that you can use for plotting, but Matplotlib has become a //de facto// standard | ||
Line 32: | Line 34: | ||
* if you need several display windows at the same time, create several figures!\\ <code>win_1 = plt.figure() | * if you need several display windows at the same time, create several figures!\\ <code>win_1 = plt.figure() | ||
win_2 = plt.figure()</code> | win_2 = plt.figure()</code> | ||
- | * the [[http://matplotlib.org/faq/usage_faq.html#parts-of-a-figure|parts of a figure]] are usually positioned in //normalized coordinates//: ''(0, 0)'' is the bottom left of the figure, and ''(1, 1)'' is the top right | + | * the [[https://matplotlib.org/stable/gallery/showcase/anatomy.html|parts of a figure]] are usually positioned in //normalized coordinates//: ''(0, 0)'' is the bottom left of the figure, and ''(1, 1)'' is 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 do 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 then try to //fill// the normalized coordinates space of the figure | * If you do 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 then try to //fill// the normalized coordinates space of the figure | ||
Line 116: | Line 118: | ||
* The ''plot'' function will be faster for scatterplots where markers don't vary in size 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.axes.Axes.contourf.html|contour(...) and contourf(...)]]: draw contour lines and filled contours | * [[https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.contourf.html|contour(...) and contourf(...)]]: draw contour lines and filled contours | ||
- | * **X and Y axes parameters** (see also [[https://matplotlib.org/examples/showcase/anatomy.html|Anatomy of a figure]]): | + | * **X and Y axes parameters** (see also [[https://matplotlib.org/stable/gallery/showcase/anatomy.html|Anatomy of a figure]]): |
* **Axis range**: ''my_plot.set_xlim(x_leftmost_value, x_rightmost_value)'' | * **Axis range**: ''my_plot.set_xlim(x_leftmost_value, x_rightmost_value)'' | ||
* Use the leftmost and rightmost values to specify the orientation of the axis (i.e the rightmost value can be smaller than the leftmost) | * Use the leftmost and rightmost values to specify the orientation of the axis (i.e the rightmost value can be smaller than the leftmost) | ||
Line 183: | Line 185: | ||
* ''my_cmap.set_over(color='k')'': color to be used for //high out-of-range values// **if** ''extend'' is specified and is //'both'// or //'max'//. Default color is ''my_cmap(my_cmap.N - 1)'' | * ''my_cmap.set_over(color='k')'': color to be used for //high out-of-range values// **if** ''extend'' is specified and is //'both'// or //'max'//. Default color is ''my_cmap(my_cmap.N - 1)'' | ||
* ''my_cmap.set_under(color='k')'': color to be used for //low out-of-range values// **if** ''extend'' is specified and is //'both'// or //'min'//. Default color is ''my_cmap(0)'' | * ''my_cmap.set_under(color='k')'': color to be used for //low out-of-range values// **if** ''extend'' is specified and is //'both'// or //'min'//. Default color is ''my_cmap(0)'' | ||
- | * [[https://matplotlib.org/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure.colorbar|colorbar]] | + | * [[https://matplotlib.org/stable/api/figure_api.html#matplotlib.figure.Figure.colorbar|colorbar]] (see also the [[https://matplotlib.org/stable/api/colorbar_api.html|colorbar api]]) |
* [[https://matplotlib.org/stable/gallery/subplots_axes_and_figures/colorbar_placement.html|Placing colorbars demo]] | * [[https://matplotlib.org/stable/gallery/subplots_axes_and_figures/colorbar_placement.html|Placing colorbars demo]] | ||
* [[https://matplotlib.org/stable/gallery/images_contours_and_fields/contourf_demo.html|contourf + colorbar demo]] | * [[https://matplotlib.org/stable/gallery/images_contours_and_fields/contourf_demo.html|contourf + colorbar demo]] | ||
Line 256: | Line 258: | ||
* [[https://matplotlib.org/stable/api/_as_gen/matplotlib.patches.Arc.html|Offical patches.Arc documentation]] | * [[https://matplotlib.org/stable/api/_as_gen/matplotlib.patches.Arc.html|Offical patches.Arc documentation]] | ||
* A nice [[https://stackoverflow.com/questions/54849976/can-someone-explain-the-different-parameters-in-matplotlib-patches-arc|ellipses and arcs tutorial]] on stackoverflow | * A nice [[https://stackoverflow.com/questions/54849976/can-someone-explain-the-different-parameters-in-matplotlib-patches-arc|ellipses and arcs tutorial]] on stackoverflow | ||
+ | |||
+ | ==== Using hatches with contourf ==== | ||
+ | |||
+ | * [[https://matplotlib.org/stable/gallery/shapes_and_collections/hatch_style_reference.html|Hatch style reference]] | ||
+ | * [[https://matplotlib.org/stable/gallery/shapes_and_collections/hatch_demo.html|Hatch demo]] | ||
+ | * [[https://matplotlib.org/stable/gallery/images_contours_and_fields/contourf_hatching.html|Contourf hatching]] | ||
+ | * //Collections// trick for [[https://fantashit.com/hatching-color-in-contourf-function/|changing the colors of hatches]] | ||
/* standard page footer */ | /* standard page footer */ |