Related Articles
Draw contours on an unstructured triangular grid in Python using Matplotlib
• Last Updated : 10 Jul, 2020

Matplotlib is a Python library which is an open-source drawing library which supports rich drawing types, it can be used to draw 2D and 3D graphics. Data can be understood easily by visualizing it with the help of matplotlib. You can also generate plots, pie charts, histograms, and many other charts as well. It provides a MATLAB-like plotting interface.

tricontour()

`tricontour` function of matplotlib library pyplot module draw contour lines and can be used to draw contours on an unstructured triangular grid. It returns `TriContourSet` object.

Syntax : tricontour(x, y, triangulation, **kwargs)

Parameters : This method consists of the following parameters.

• x, y : Coordinates of the grid.
• triangulation : It is a matplotlib.tri.Triangulation object.
• z : It is the array of values to contour, one per point in the triangulation.
• N :It contours up to N+1 automatically chosen contour levels for N intervals.
• V :It draws contour lines at the values specified in sequence V and it must be in increasing order.

Example :

 `import` `matplotlib.pyplot as plt``import` `matplotlib.tri as tri``import` `numpy as np`` ` ` ` `n_angles ``=` `56``n_radii ``=` `8``min_radius ``=` `0.25``radii ``=` `np.linspace(min_radius, ``0.95``, n_radii)`` ` `angles ``=` `np.linspace(``0``, ``2` `*` `np.pi, n_angles, endpoint ``=` `False``)``angles ``=` `np.repeat(angles[..., np.newaxis], n_radii, axis ``=` `1``)``angles[:, ``1``::``2``] ``+``=` `np.pi ``/` `n_angles`` ` `x ``=` `(radii ``*` `np.cos(angles)).flatten()``y ``=` `(radii ``*` `np.sin(angles)).flatten()``z ``=` `(np.cos(radii) ``*` `np.cos(``3` `*` `angles)).flatten()`` ` `# Create the Triangulation; no triangles so``# Delaunay triangulation created.``triang ``=` `tri.Triangulation(x, y)`` ` `# Mask off unwanted triangles.``triang.set_mask(np.hypot(x[triang.triangles].mean(axis ``=` `1``), ``                         ``y[triang.triangles].mean(axis ``=` `1``))``                ``< min_radius)`` ` `fig1, ax1 ``=` `plt.subplots()``ax1.set_aspect(``'equal'``)`` ` `tcf ``=` `ax1.tricontourf(triang, z, cmap ``=``'inferno'``)``fig1.colorbar(tcf)`` ` `ax1.tricontour(triang, z, colors ``=``'k'``)``ax1.set_title(``'Contour plot for Delaunay triangulation'``)`

Output :

tricontourf()

`tricontourf` function of matplotlib library pyplot module fills intervals that are closed at the top and can be used to draw contours on an unstructured triangular grid. Function signature and return value are same as in `tricontour`.

Syntax : tricontourf(x, y, triangulation, **kwargs)

Parameters : This method consists of the following parameters.

• x, y : Coordinates of the grid.
• triangulation : It is a matplotlib.tri.Triangulation object.
• z : It is the array of values to contour, one per point in the triangulation.
• N :It contours up to N+1 automatically chosen contour levels for N intervals.
• V :It fills the (len(V)-1) regions between the values in V and it must be in increasing order.

Example :

 `import` `matplotlib``matplotlib.axes.Axes.tricontourf``matplotlib.pyplot.tricontourf``matplotlib.tri.Triangulation`` ` `xy ``=` `np.asarray([``    ``[``-``0.101``, ``0.872``], [``-``0.080``, ``0.883``], [``-``0.069``, ``0.888``],``    ``[``-``0.054``, ``0.890``], [``-``0.045``, ``0.897``], [``-``0.057``, ``0.895``],``    ``[``-``0.073``, ``0.900``], [``-``0.087``, ``0.898``], [``-``0.090``, ``0.904``],``    ``[``-``0.069``, ``0.907``], [``-``0.069``, ``0.921``], [``-``0.080``, ``0.919``],``    ``[``-``0.073``, ``0.928``], [``-``0.052``, ``0.930``], [``-``0.048``, ``0.942``],``    ``[``-``0.062``, ``0.949``], [``-``0.054``, ``0.958``], [``-``0.069``, ``0.954``], ``    ``[``-``0.087``, ``0.952``], [``-``0.087``, ``0.959``], [``-``0.080``, ``0.966``], ``    ``[``-``0.085``, ``0.973``], [``-``0.087``, ``0.965``], [``-``0.097``, ``0.965``],``    ``[``-``0.097``, ``0.975``], [``-``0.092``, ``0.984``], [``-``0.101``, ``0.980``], ``    ``[``-``0.108``, ``0.980``], [``-``0.104``, ``0.987``], [``-``0.102``, ``0.993``], ``    ``[``-``0.115``, ``1.001``], [``-``0.099``, ``0.996``], [``-``0.101``, ``1.007``],``    ``[``-``0.090``, ``1.010``], [``-``0.087``, ``1.021``], [``-``0.069``, ``1.021``],``    ``[``-``0.052``, ``1.022``], [``-``0.052``, ``1.017``], [``-``0.069``, ``1.010``],``    ``[``-``0.064``, ``1.005``], [``-``0.048``, ``1.005``], [``-``0.031``, ``1.005``],``    ``[``-``0.031``, ``0.996``], [``-``0.040``, ``0.987``], [``-``0.045``, ``0.980``],``    ``[``-``0.052``, ``0.975``], [``-``0.040``, ``0.973``], [``-``0.026``, ``0.968``],``    ``[``-``0.020``, ``0.954``], [``-``0.006``, ``0.947``], [ ``0.003``, ``0.935``], ``    ``[ ``0.006``, ``0.926``], [ ``0.005``, ``0.921``], [ ``0.022``, ``0.923``], ``    ``[ ``0.033``, ``0.912``], [ ``0.029``, ``0.905``], [ ``0.017``, ``0.900``], ``    ``[ ``0.012``, ``0.895``], [ ``0.027``, ``0.893``], [ ``0.019``, ``0.886``],``    ``[ ``0.001``, ``0.883``], [``-``0.012``, ``0.884``], [``-``0.029``, ``0.883``], ``    ``[``-``0.038``, ``0.879``], [``-``0.057``, ``0.881``], [``-``0.062``, ``0.876``],``    ``[``-``0.078``, ``0.876``], [``-``0.087``, ``0.872``], [``-``0.030``, ``0.907``], ``    ``[``-``0.007``, ``0.905``], [``-``0.057``, ``0.916``], [``-``0.025``, ``0.933``],``    ``[``-``0.077``, ``0.990``], [``-``0.059``, ``0.993``]])`` ` `x ``=` `np.degrees(xy[:, ``0``])``y ``=` `np.degrees(xy[:, ``1``])``x0 ``=` `-``5``y0 ``=` `52``z ``=` `np.exp(``-``0.01` `*` `((x ``-` `x0) ``*``*` `2` `+` `(y ``-` `y0) ``*``*` `2``))`` ` `triangles ``=` `np.asarray([``    ``[``67``, ``66``,  ``1``], [``65``,  ``2``, ``66``], [ ``1``, ``66``,  ``2``], ``    ``[``64``,  ``2``, ``65``], [``63``,  ``3``, ``64``], [``60``, ``59``, ``57``], ``    ``[ ``2``, ``64``,  ``3``], [ ``3``, ``63``,  ``4``], [ ``0``, ``67``,  ``1``], ``    ``[``62``,  ``4``, ``63``], [``57``, ``59``, ``56``], [``59``, ``58``, ``56``],``    ``[``61``, ``60``, ``69``], [``57``, ``69``, ``60``], [ ``4``, ``62``, ``68``],``    ``[ ``6``,  ``5``,  ``9``], [``61``, ``68``, ``62``], [``69``, ``68``, ``61``], ``    ``[ ``9``,  ``5``, ``70``], [ ``6``,  ``8``,  ``7``], [ ``4``, ``70``,  ``5``], ``    ``[ ``8``,  ``6``,  ``9``], [``56``, ``69``, ``57``], [``69``, ``56``, ``52``],``    ``[``70``, ``10``,  ``9``], [``54``, ``53``, ``55``], [``56``, ``55``, ``53``],``    ``[``68``, ``70``,  ``4``], [``52``, ``56``, ``53``], [``11``, ``10``, ``12``],``    ``[``69``, ``71``, ``68``], [``68``, ``13``, ``70``], [``10``, ``70``, ``13``],``    ``[``51``, ``50``, ``52``], [``13``, ``68``, ``71``], [``52``, ``71``, ``69``], ``    ``[``12``, ``10``, ``13``], [``71``, ``52``, ``50``], [``71``, ``14``, ``13``],``    ``[``50``, ``49``, ``71``], [``49``, ``48``, ``71``], [``14``, ``16``, ``15``],``    ``[``14``, ``71``, ``48``], [``17``, ``19``, ``18``], [``17``, ``20``, ``19``],``    ``[``48``, ``16``, ``14``], [``48``, ``47``, ``16``], [``47``, ``46``, ``16``],``    ``[``16``, ``46``, ``45``], [``23``, ``22``, ``24``], [``21``, ``24``, ``22``],``    ``[``17``, ``16``, ``45``], [``20``, ``17``, ``45``], [``21``, ``25``, ``24``],``    ``[``27``, ``26``, ``28``], [``20``, ``72``, ``21``], [``25``, ``21``, ``72``], ``    ``[``45``, ``72``, ``20``], [``25``, ``28``, ``26``], [``44``, ``73``, ``45``],``    ``[``72``, ``45``, ``73``], [``28``, ``25``, ``29``], [``29``, ``25``, ``31``], ``    ``[``43``, ``73``, ``44``], [``73``, ``43``, ``40``], [``72``, ``73``, ``39``], ``    ``[``72``, ``31``, ``25``], [``42``, ``40``, ``43``], [``31``, ``30``, ``29``], ``    ``[``39``, ``73``, ``40``], [``42``, ``41``, ``40``], [``72``, ``33``, ``31``], ``    ``[``32``, ``31``, ``33``], [``39``, ``38``, ``72``], [``33``, ``72``, ``38``],``    ``[``33``, ``38``, ``34``], [``37``, ``35``, ``38``], [``34``, ``38``, ``35``], ``    ``[``35``, ``37``, ``36``]])`` ` `fig2, ax2 ``=` `plt.subplots()``ax2.set_aspect(``'equal'``)``tcf ``=` `ax2.tricontourf(x, y, triangles, z, cmap ``=``'copper'``)``fig2.colorbar(tcf)`` ` `ax2.set_title(``'Contour plot using user-specified triangulation'``)``ax2.set_xlabel(``'Longitude (degrees)'``)``ax2.set_ylabel(``'Latitude (degrees)'``)`` ` `plt.show()`

Output :

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up