

やりたいことはタイトルの通りで、VisualStudioの.NETFrameworkで作った画面に、matplotlibのグラフの画像を表示する方法を知りたいです。  
流れは、  
GUI上のボタンをクリック  
→pythonのスクリプト(グラフを描画するスクリプト)が実行される  
→グラフ画像を取得  
→GUIに画像を表示  
という流れです。

調べたところプロセス間通信を使用すると出てきたのですが、勉強不足なのか調べが甘いのか具体的なやり方がわかりませんでした。  
もっと簡単な方法をご存知であれば教えていただきたいです。  
もしくは、よいサイトをご存知であれば教えていただきたいです。

直接コードを書いていただいてもかまいません。  
よろしくお願いいたします。


CC BY-SA 4.0
2019-03-20T12:12:12.167
53594
2019-03-25T13:04:05.917
29100
question
python c# visual-studio .net matplotlib
pythonのmatplotlibのグラフの画像を、VisualStudio(C#)で作ったGUIに表示したい。


貴方の調べたのとは違っていそうですが、今一番即効性のある方法はこれだと思われます。  
[Matplotlib python module, using from
C#](https://medium.com/@pavel.koryakin/matplotlib-python-module-using-
from-c-6e98d75cf08e)  
FlaskでWebサービスを立ててPython+MatplotlibのWeb-
APIを実装し、C#アプリからHttpリクエストを投げて返ってきた結果を表示する形だと書かれているようです。

[GitHubプロジェクト](https://github.com/ITGlobal/MatplotlibCS)や[NuGetパッケージ](https://www.nuget.org/packages/MatplotlibCS/)も作られているようなので、素早く試せるのでは？

他の使い方にはこんなのがあるようです。

  * IronPython: 2.x系の動かすには色々対処が必要な版と、未完成の3.x系の版があるようです。  
[Windows .NET C#からPythonを使う。2017年3月30日版。](http://hope-is-
dream.hatenablog.com/entry/2017/03/31/Windows__NET_C%23%E3%81%8B%E3%82%89Python%E3%82%92%E4%BD%BF%E3%81%86%E3%80%822017%E5%B9%B43%E6%9C%8830%E6%97%A5%E7%89%88%E3%80%82)
/ [IronPython](https://ironpython.net/) /
[IronLanguages/ironpython3](https://github.com/IronLanguages/ironpython3)

  * Pythonを子プロセスとして起動する: 日本語記事は結果が別ウインドウで表示でした。  
[C#からPYTHONの呼び出し](http://chemesim.xsrv.jp/wp/c%E3%81%8B%E3%82%89python%E3%81%AE%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97-391.html)
/ [Inter-process communication between C# and
Python](https://code.msdn.microsoft.com/windowsdesktop/C-and-Python-
interprocess-171378ee)  
[execute a python script in C#](https://stackoverflow.com/q/33669450/9014308)

  * Python for .NET: 使いこなせるなら一番自由度が高そうですが、動作確認しているのは3.6まで。  
[pythonnet.github.io](http://pythonnet.github.io/) /
[pythonnet/pythonnet](https://github.com/pythonnet/pythonnet)  
[Pythonから.NETを呼び出す方法とついでにその逆も](https://qiita.com/y-tsutsu/items/0c4561d6478be32e6f8e)
/ [Visual
StudioでPython使う人（オレ）へのメモ](https://qiita.com/ShinoTatwu/items/f7e49eaa8ccfe9c2fe53)  
[Python Plot doesn't appear when launched by Command Line in
C#](https://stackoverflow.com/q/47617717/9014308) / [add docs - using
matplotlib from C# via pythonnet
#442](https://github.com/pythonnet/pythonnet/issues/442) / [embedding docs -
expose all available API
#410](https://github.com/pythonnet/pythonnet/issues/410)


CC BY-SA 4.0
2019-03-20T13:37:45.517
53598
2019-03-20T13:37:45.517
26370
53594
answer


> GUI上のボタンをクリック  
>  →pythonのスクリプト(グラフを描画するスクリプト)が実行される

.netアプリケーションから別のプログラムを起動するには、`System.Diagnostics.Process.Start`が使えます。これでpythonを起動し、適当なディレクトリに画像を出力してください。

> →グラフ画像を取得  
>  →GUIに画像を表示

.netアプリケーションで画像を表示するには、`PictureBox`コントロールを使うのが簡単です。`ImageLocation`プロパティに先ほど出力した画像のパスを指定してください。

それぞれの使い方は.Netのリファレンスを確認してください。わからないことがあればそれぞれれ具体的な内容にしてまた別に質問を立ててください。


CC BY-SA 4.0
2019-03-25T13:04:05.917
53723
2019-03-25T13:04:05.917
5793
53594
answer