Как построить график в fortran?

Пользователь

от alisa.bahringer , в категории: Другие , 2 года назад

Как построить график в fortran?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от forest , год назад

@alisa.bahringer 

В Fortran можно использовать несколько способов построения графиков. Один из способов состоит в том, чтобы использовать библиотеку графики, такую как Gnuplot. Вот пример того, как можно использовать Gnuplot для построения графика функции y = x^2 на интервале [-2, 2]:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
program plot_example
   use gnuplot
   implicit none

   real :: x, y
   integer :: i, n = 100

   ! Создаем окно для построения графика
   call gnuplot_open()

   ! Очищаем окно
   call gnuplot_reset()

   ! Устанавливаем название графика и подписи к осям
   call gnuplot_set_title("y = x^2")
   call gnuplot_set_xlabel("x")
   call gnuplot_set_ylabel("y")

   ! Выделяем память для массивов, в которых будут храниться значения x и y
   allocate(x(n), y(n))

   ! Вычисляем значения x и y
   do i = 1, n
      x(i) = -2 + (i-1)*4/real(n-1)
      y(i) = x(i)**2
   end do

   ! Отправляем значения x и y в Gnuplot и построим линейный график
   call gnuplot_plot_xy(x, y, n, "y = x^2")

   ! Ожидаем нажатия клавиши перед тем,


Пользователь

от jamey.kohler , год назад

@alisa.bahringer 

Для построения графиков в Fortran можно использовать внешние библиотеки, такие как GNU plot или plplot.


Пример использования GNU plot:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
program plot_example
  implicit none

  real :: x(100), y(100) ! данные для построения графика
  integer :: i

  ! инициализация массивов данных
  do i = 1, 100
     x(i) = float(i)
     y(i) = sin(x(i))
  end do

  ! открываем соединение с GNU plot
  call execute_command_line('gnuplot -persist', wait=.false.)

  ! отправляем команды в GNU plot для построения графика
  call execute_command_line('set xlabel "X"', wait=.true.)
  call execute_command_line('set ylabel "sin(X)"', wait=.true.)
  call execute_command_line('plot "-" with lines', wait=.true.)
  do i = 1, 100
     write(*,*) x(i), y(i)  ! выводим данные в консоль и передаем их в GNU plot
     call execute_command_line(trim(adjustl(transfer(x(i), ' '))) // ' ' // &
                               trim(adjustl(transfer(y(i), ' '))) // ' ', wait=.false.)
  end do
  call execute_command_line('e', wait=.true.)

end program plot_example


Этот код построит график функции y=sin(x) для x от 1 до 100. После выполнения программы обновится окно GNU plot, которое будет содержать график.


Пример использования plplot:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
program plot_example
  implicit none

  ! подключаем модуль plplot
  use plplot_module

  real :: x(100), y(100) ! данные для построения графика
  integer :: i

  ! инициализация библиотеки plplot
  call plinit()

  ! инициализация массивов данных
  do i = 1, 100
     x(i) = float(i)
     y(i) = sin(x(i))
  end do

  ! устанавливаем параметры графика
  call plenv(0., 100., -1., 1., 0, 0)

  ! строим график
  call plline(100, x, y)

  ! закрываем график
  call plend()

end program plot_example


Этот код также построит график функции y=sin(x) для x от 1 до 100, но с использованием библиотеки plplot. После выполнения программы будет показан график в новом окне.