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 [2020/03/31 14:26] jypeter [Starting (and more) with matplotlib] Improved offline plot creation |
other:python:matplotlib_by_jyp [2020/12/14 14:55] jypeter [Useful matplotlib reference pages] Added details to the titles |
||
---|---|---|---|
Line 116: | Line 116: | ||
* 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 | + | * **X and Y axes parameters** (see also [[https://matplotlib.org/examples/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) | ||
- | * Axis label: ''my_plot.set_xlabel(x_label_string, fontsize=axis_label_fontsize)'' | + | * **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'' | + | * 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)'' | + | * <wrap hi>cartopy dirty trick</wrap>: you have to use ''my_plot.set_xticks([])'', otherwise the X axis label will not be printed |
+ | * [[https://stackoverflow.com/questions/35479508/cartopy-set-xlabel-set-ylabel-not-ticklabels|Trick source]] | ||
+ | * Trick needs to be used with ''cartopy 0.17.0''\\ Remember to update/remove this information in the future | ||
+ | * 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([])'' | * 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)'' | + | * **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 | * ''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, ... | * Many more options for ticks, labels, orientation, ... | ||
+ | * **Grid lines**: | ||
+ | * Their position is determined by the values used for ''set_xticks'' and ''set_yticks'' | ||
+ | * Activate all (horizontal **and** vertical) grid lines with: ''my_plot.grid(True, linestyle="%%--%%", linewidth=0.5, color='.25',zorder=some_value)''\\ You can adjust the ''zorder'' value to determine if the grid lines should be above or below other parts of the plot! | ||
+ | * Plot only the horizontal **or** vertical lines with:\\ ''ax.yaxis.grid(True)''\\ or ''ax.xaxis.grid(True)'' | ||
+ | * Note: <wrap hi>special case of //cartopy// plots</wrap>: the location of the gridlines, and the properties of the associated labels are determined by ''myplot.gridlines''! See [[https://scitools.org.uk/cartopy/docs/latest/matplotlib/gridliner.html|Cartopy map gridlines and tick labels]] | ||
* [[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 164: | Line 172: | ||
* [[https://matplotlib.org/api/_as_gen/matplotlib.pyplot.text.html|text(...)]] and [[https://matplotlib.org/tutorials/text/annotations.html|annotations]] | * [[https://matplotlib.org/api/_as_gen/matplotlib.pyplot.text.html|text(...)]] and [[https://matplotlib.org/tutorials/text/annotations.html|annotations]] | ||
* Some titles: | * Some titles: | ||
- | * [[https://matplotlib.org/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure.suptitle|Figure title]]: ''my_figure.suptitle('Figure title', x=xloc_in_normalized_coordinates, y=yloc_in_normalized_coordinates, ...)'' | + | * **Title at the top of the page**: [[https://matplotlib.org/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure.suptitle|Figure title]]: ''my_figure.suptitle('Figure title', x=xloc_in_normalized_coordinates, y=yloc_in_normalized_coordinates, ...)'' |
- | * [[https://matplotlib.org/api/axes_api.html#axis-labels-title-and-legend|Axis Labels, title, and legend]]: ''my_plot.set_title('Plot title', ...)'' | + | * **Title above each plot**:[[https://matplotlib.org/api/axes_api.html#axis-labels-title-and-legend|Axis Labels, title, and legend]]: ''my_plot.set_title('Plot title', ...)'' |
+ | * [[https://matplotlib.org/gallery/text_labels_and_annotations/titles_demo.html#sphx-glr-gallery-text-labels-and-annotations-titles-demo-py|Title and labels positions demo]] | ||
* ''fontsize'': size in points, or (better!) string specifying a relative size (''xx-small'', ''x-small'', ''small'', ''medium'', ''large'', ''x-large'', ''xx-large'') | * ''fontsize'': size in points, or (better!) string specifying a relative size (''xx-small'', ''x-small'', ''small'', ''medium'', ''large'', ''x-large'', ''xx-large'') | ||
* [[https://matplotlib.org/api/text_api.html#matplotlib.text.Text|all the text properties]] | * [[https://matplotlib.org/api/text_api.html#matplotlib.text.Text|all the text properties]] |