繪圖程式介面只要下載一個檔案 matplotlibcpp.h, 可上官網 https://github.com/lava/matplotlib-cpp 看是否有新版本, 再將它複製到 /usr/local/include 或是放在專案程式內
2. 另外還需要安裝 python3-dev python3-numpy python3-matplotlib 程式庫
sudo apt install python3-dev python3-numpy python3-matplotlib
3. 編譯方式
g++ 原始程式 -I /usr/include/python3.8 -l python3.8
4. 參考官網 https://github.com/lava/matplotlib-cpp 編輯一個 c++ 繪圖程式 plot.cpp, 稍微修改一下:
#include "matplotlibcpp.h"
#include <vector>
using namespace std;
namespace plt = matplotlibcpp;
int main() {
int fs = 5000; // number of samples
vector<double> x(fs), y(fs);
for(int i = 0; i < fs; i ++) {
double theta = 2 * M_PI * i / fs;
x[i] = 16*sin(theta) * sin(theta)*sin(theta);
y[i] = 13*cos(theta) - 5*cos(2*theta) - 2*cos(3*theta) - cos(4*theta);
}
plt::plot(x, y, "r-"); // x-y plot, red solid line.
plt::show();
}
備註:
1. 用 g++ 編譯上述 c++ 程式時, 有可能找不到 <Python.h>, 需要將標頭檔案所在目錄及所需聯結的程式庫名稱, 明確告訴編譯程式,
若已經安裝好 python3.8 的版本, 只要加上參數 -I 標頭目錄及 -l 程式庫名稱, 就能編譯成功:
g++ plot.cpp -I/usr/include/python3.8 -lpython3.8
2. 用 bash 語法定義一個簡單的 alias, 簡化輸入命令. 但要將原始檔名當參數傳遞, 必須定義函式來呼叫, 在函式內可以使用
$1 當第一個參數, $2 當第二個參數, 以此類推, 後續接其它固定參數, 定義完後用分號分開, 再以接力方式運行該函式,
寫成單一行並用括號包起來:
alias pcc='_gcc() { g++ "$1" -I/usr/include/python3.8 -lpython3.8;}; _gcc'
但要注意上述 alias 名稱 pcc 與等號 = 之間不能有空格, 之後簡單用 pcc 編譯程式就可以了:
pcc plot.cpp && ./a.out
沒有留言:
張貼留言