シミュレーションの結果はCSVで書き出してMicrosoft Excelでグラフ化するなどしてますが、もっと手軽にする方法を見つけたのでメモします.
この方法はAtsushiさんの[C++のコードから簡単にmatplotlibを使ってグラフを作成する方法]を参考に会社などWindowsしか選べない環境でC++からmatplotlibを使う方法です.
環境
- Windows 10 - 64bit (Windows 7など)
- Anaconda (Python 2.7, 3.5, 3.6いずれでも)
- Visual Studio 2013, 2015, 2017 いずれでも
1. Visual Studio 2017の場合
環境変数VS150COMNTOOLSを設定。Visual Studio Build Toolsとしてデフォルトのパスにインストールしている場合は、"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\"
その他はご自分の環境に合わせて. Visual Studio 2013, 2015の場合はデフォで設定済みになっています。
2. Matplotlib-cppを取得し、設定
Chachay/matplotlib-cppからクローンし、Contrib/WinBuild.cmdをエディタで開き、環境に合わせて設定。
if NOT DEFINED MSVC_VERSION set MSVC_VERSION=12または14,15
if NOT DEFINED CMAKE_CONFIG set CMAKE_CONFIG=Release
if NOT DEFINED PYTHONHOME set PYTHONHOME=Pythonフォルダへのリンク
if NOT DEFINED CMAKE_CONFIG set CMAKE_CONFIG=Release
if NOT DEFINED PYTHONHOME set PYTHONHOME=Pythonフォルダへのリンク
3. ビルドして実行
コマンドプロンプトやPowerShellでcontribフォルダを開き、Contrib/WinBuild.cmdを実行. examples/build/releaseにサンプルファイルがリリースされているはず.4. 自分のファイルは?
cmakelist.txtを参考にどうぞ!環境
- Windows 10 - 64bit(Windows 7など)
- Python2.7 - 32bit
- matplotlib導入済
- MinGW - 32bit : インストール方法
1. [準備] Libpython27.aの入れ替え
後述の工程でg++を使ってのコンパイル時に
libpython27.a: error adding symbols: File format not recognizedなどというエラーが出てくるのでその対策をしておきます.
(最初はPython2.7のインストールで何かを間違えたかと思いましたが、
良くあることらしくいくつか事例を見かけました.→ 事例① 事例② 事例③ )
以下は元はと言えば64bit版環境を構築する説明ですが、これを参考にlibpython27.aを置き換えました.
You can try to make libpython27.a or download from here (tip: you can unpack installer with 7-Zip). Make sure that you put libpython27.a inものぐさなので自分ではビルトしないことにしましたC:\Python27\libs
directory.
Windows Installation Guide · Valloric/YouCompleteMe Wiki · GitHub
- libpython27.aをダウンロードしてしまう方法
- ここからlibpython-2.7.10-cp27-none-win32.whlをダウンロード
- 7Zipとして解凍
- 中に入っているlibpython27.aをC:\python27\libsへコピー (上書き)
2. [準備] matplotlib-cppの準備
Githubのリポジトリからmatplotlib-cpp-starterをダウンロードしてきます.
これを(Windows用に?)、少し改変します.
- matplotlibcpp.h
- 13行目
#include <python2.7/Python.h>を#include <Python.h>に変更 - main.cpp
- #define M_PI 3.14159265などと追加
3. matplotlib-cppのサンプル実行
コマンドプロンプトでの実行用にバッチファイルを書きます.
(build_and_run.shの代わりになるファイル)
main.cppと同じフォルダにbuild_and_run.batファイルを作り、中に、
g++ ./main.cpp -lstdc++ -std=c++11 -I"C:\python27\include" -L"C:\Python27\libs" -lpython27 -o test && test
Pause
Pause
と書きます.
これを実行するとサンプルがコンパイルされて、以下が表示されるはずです.
(Atsuhiさんの見本と違う結果ですが2016/03/16現在は以下の結果になるmain.cppが添付されています)
これを実行するとサンプルがコンパイルされて、以下が表示されるはずです.
(Atsuhiさんの見本と違う結果ですが2016/03/16現在は以下の結果になるmain.cppが添付されています)
4. 使い方
Gnuplotをパイプするより簡単で助かります!!
参考
[1] C++のコードから簡単にmatplotlibを使ってグラフを作成する方法 - MyEnigma
[2] MinGWのインストールと使い方(2014年版)
[3] Matplotlibの使い方 : matplotlib入門 - りんごがでている http://bicycle1885.hatenablog.com/entry/2014/02/14/023734
[4] Windows Installation Guide · Valloric/YouCompleteMe Wiki · GitHub
No comments:
Post a Comment