Help us understand the problem. What is going on with this article?

Fortran 愛好家に贈る f2py で動かす matplotlib の調理法

はじめに

世の中はpythonである。でもそれだけがいいとは思はない。一番速いコンパイラーはFortranなのだ。数値計算ならFortranの方が手っ取り早く世界最速のオブジェクトを吐く。
でも、グラフィック表示は苦手で、Pythonのmatplotlib Libralyを横目で見てため息をつく諸兄は多いはずだ。

ここに、世界一簡単だと思う方法で、Fortranの出力をMatplotlibに表示する方法を述べる。

Fortran Program

sin.f90

       subroutine plot(n,x,a)
       integer, intent(in) :: n
       real(8), intent(out) :: a(n),x(n)
       do i = 1, n
        x(i) = i
        a(i) = sin((2*3.1415926/n) * i)
       end do
       end subroutine

宣言文の類を抜くと5行のプログラムである。これが読めないのにこの記事を読んでいる人がいたら不可解である。

Python Script

plot.py
#! /usr/bin/python3
import sin
import matplotlib.pyplot as plt

x, y = sin.plot(1024)

plt.plot(x,y)
plt.show()

宣言を除くと3行。これぐらいは勘弁してほしい。しかも、x-y plotの範疇ならいじる必要はない。

Link & Run

では実行しよう。
先ず、

f2py -c sin.f90  -m sin -lm

これで、Fortran ProgramはPython ModuleにCompileされる。
で、実行。

python3 plot.py

お仕舞

Pythonアレルギーがちょっとは後退しただろうか。この先はmatplotlibのマニュアルを見て、うまくやってほしい。
Fortranの方はお任せするので活用していただければ幸いである。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away