2025年4月5日土曜日

pyplot-fortranで fortran から直接グラフ生成

doc.md

fortran のスクリプトから直接画像を生成できる。

インストール

fpm をあらかじめインストールしておく (参考).

git clone https://github.com/jacobwilliams/pyplot-fortran.git cd pyplot-fortran/ fpm build fpm test fpm install sudo mv ~/.local/lib/libpyplot-fortran.a /usr/local/lib sudo mv ~/.local/include/pyplot_module.mod /usr/local/include

ソースコード・コンパイル

program test use pyplot_module, only : pyplot, wp => pyplot_wp implicit none integer, parameter :: N = 100 real(8), parameter :: pi = 4.d0*atan(1.d0) real(8), parameter :: dx = 2.d0*pi / dble(N-1) real(8) :: x(N)=0.d0, y(N)=0.d0 integer :: i type(pyplot) :: plt integer :: istat ! set function do i = 2, N x(i) = x(i-1) + dx end do y = sin(x) ! plot graph call plt%initialize(grid=.true., xlabel='x', ylabel='y', figsize=[8,5], title='sinwave') call plt%add_plot(x,y, label='sin', linestyle='b-o', markersize=1, linewidth=2, istat=istat) call plt%savefig('graph.png', istat=istat) end program test
gfortran test.f90 -I/usr/local/include -L/usr/local/library/ -lpyplot-fortran ./a.out

結果

結構便利かも。
他にも build したときの test をみると pyplot でプロットできるグラフなら何でもプロットできそう。
出力過程は tmp.py に関数の数値データを全て入力した後に実行しているから、重いデータのプロットには時間がかかるかも

0 件のコメント:

コメントを投稿