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:jyp_steps [2019/06/18 15:53] jypeter [Useful matplotlib reference pages] Added contourf + demo |
other:python:jyp_steps [2019/06/27 09:31] jypeter [Useful matplotlib reference pages] Added axis ticks and labels |
||
---|---|---|---|
Line 211: | Line 211: | ||
bottom_plot = plot_array[2]</code> | bottom_plot = plot_array[2]</code> | ||
* creating a figure and axes with a single line: ''my_page, plot_array = **plt**.subplots(3, 1)'' | * creating a figure and axes with a single line: ''my_page, plot_array = **plt**.subplots(3, 1)'' | ||
+ | * use [[https://matplotlib.org/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure.add_axes|my_page.add_axes(...)]] to add an axis in an arbirary location of the page\\ ''my_page.add_axes([left, bottom, width, height])'' | ||
* 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 | ||
* **clearing** the //page// (or part of it): you probably won't need that... | * **clearing** the //page// (or part of it): you probably won't need that... | ||
Line 222: | Line 223: | ||
* [[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.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 overall boundaries of the subplots on the figure, and the spacing between the subplots\\ ''plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)''\\ or ''my_page.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)'' | * [[https://matplotlib.org/api/_as_gen/matplotlib.pyplot.subplots_adjust.html|subplots_adjust]] can be used to change the overall boundaries of the subplots on the figure, and the spacing between the subplots\\ ''plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)''\\ or ''my_page.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)'' | ||
+ | * ''hspace''/''wspace'' is the amount of height/width between the subplots | ||
+ | * ''hspace=0.1'' is enough for just displaying the ticks and the labels, without the axis name | ||
+ | * use ''hspace=0'' to stick the plots together vertically | ||
+ | * do not forget to disable the ticks where there is no space to plot them: ''my_plot.set_xticks([])'' | ||
+ | * ''my_page.subplots_adjust(right=0.75)'' will leave 25% on the right of the page for adding a legend outside of a plot | ||
+ | * You can also **resize an existing (sub)plot** the following way: | ||
+ | - Get the current size information: ''pl_x_bottomleft, pl_y_bottomleft, pl_width, pl_height = my_plot.get_position().bounds'' | ||
+ | - Set the new size: e.g reduce the height with ''my_plot.set_position( (pl_x_bottomleft, pl_y_bottomleft, pl_width, pl_height * 0.5) )'' | ||
* [[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 248: | Line 257: | ||
==== Useful matplotlib reference pages ==== | ==== Useful matplotlib reference pages ==== | ||
- | * [[https://matplotlib.org/api/_as_gen/matplotlib.pyplot.plot.html|plot(...)]]: Plot y versus x as lines and/or markers | + | * Some plot types: |
- | * [[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 | + | * [[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 | * 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 | ||
+ | * 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) | ||
+ | * Axis label: ''my_plot.set_xlabel(x_label_string, fontsize=axis_label_fontsize)'' | ||
+ | * Use the extra labelpad parameter to move the label closer (negative value) to the axis or farther (positive value): e.g. ''my_plot.set_xlabel('A closer label', labelpad=-20'' | ||
+ | * Major (and minor) tick marks location: ''my_plot.set_xticks(x_ticks_values, minor=False)'' | ||
+ | * Use an empty list if you don't want tick marks: ''my_plot.set_xticks([])'' | ||
+ | * Tick labels (if you don't want the default values): ''my_plot.set_xticklabels(x_ticks_labels, minor=False, fontsize=ticklabels_fontsize)'' | ||
+ | * ''x_ticks_labels'' is a list of strings that has the same length as ''x_ticks_values''. Use an empty string in the positions where you don't want a label | ||
+ | * Many more options for ticks, labels, orientation, ... | ||
* [[https://matplotlib.org/api/_as_gen/matplotlib.lines.Line2D.html|line]] parameters | * [[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]]) | * ''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]]) | ||
Line 287: | Line 307: | ||
* The [[https://matplotlib.org/api/_as_gen/matplotlib.figure.Figure.html|figure(...)]] and the associated methods | * The [[https://matplotlib.org/api/_as_gen/matplotlib.figure.Figure.html|figure(...)]] and the associated methods | ||
* The [[https://matplotlib.org/api/axes_api.html|axes]] and the associated methods | * The [[https://matplotlib.org/api/axes_api.html|axes]] and the associated methods | ||
- | * [[https://matplotlib.org/tutorials/introductory/customizing.html#matplotlib-rcparams|matplotlib default settings]] can be queried and updated | + | * [[https://matplotlib.org/tutorials/introductory/customizing.html#matplotlib-rcparams|matplotlib default config/settings]] can be queried and updated |
* example: the default figure size (inches) is ''mpl.rcParams['figure.figsize']'' (''[6.4, 4.8]'') | * example: the default figure size (inches) is ''mpl.rcParams['figure.figsize']'' (''[6.4, 4.8]'') | ||
* current settings' file: ''mpl.matplotlib_fname()'' | * current settings' file: ''mpl.matplotlib_fname()'' |