One of the advantages of Python is the large ecosystem of libraries for handling numerical problems. There are good reasons to use these from .Net/CLR/C# applications with their high reliability, and excellent tooling and large enterprise code bases. Fortunately thare are several ways of doing this.
One of the ways of implementing this is shown below:
It consists of using the PythonNet library to load the CPython interpreter in-process to the .Net application and allow access to all of the Python libraries. As shown above, this can be used, for example, to draw technical figures and graphs using matplotlib many capabilities.
The above example is our own implementation. The Matplotlib.net uses similar approach but unfortunately has not progressed for last few years. There is also MatplotlibCS which implements the communication between Python and NET CLR via HTTP network requests. In MatplotlibCS the plot to be made is represented by as JSON object. In an in-process implementation like ours the plot can be imperatively built using standard function calls.