2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2, 3
 
 Re: ПО для построения графиков для публикации.
Сообщение07.09.2012, 01:01 
самая современная программа для всех видов график это - Mathematica

 
 
 
 Re: ПО для построения графиков для публикации.
Сообщение17.05.2019, 03:10 
Аватара пользователя
Я бы посоветовал GnuPlot. И дело не только в том, что он мощный, свободный и кроссплатформенный, его еще можно использовать как самостоятельно, так и с любым языком программирования.

 
 
 
 Re: ПО для построения графиков для публикации.
Сообщение17.05.2019, 06:51 

(Оффтоп)

Snegovik в сообщении #1393566 писал(а):
как самостоятельно, так и с любым языком программирования
Наверно имеется в виду вызов gnuplot из других программ, типа такого..
Gnuplot:
Код:
set terminal pngcairo enhanced fontscale S size 512*S, 512*S
set output f_out
plot \
f_in using 1:4 with linespoints pointtype 4 ps S lw S lc rgb 'black' title '|{/:Bold A q}_{ prev} ‒ {/:Bold b}| / |{/:Bold b}|'
Командная строка:
Код:
gnuplot -e "f_in='Dir/InputFileName.txt'; f_out='Dir/OutputFileName.txt'; S = 2;"
Командную строку на c++ можно вызвать командой std::system(char *command)

 
 
 
 Re: ПО для построения графиков для публикации.
Сообщение17.05.2019, 13:25 
Аватара пользователя
feedinglight в сообщении #1393576 писал(а):
Наверно имеется в виду вызов gnuplot из других программ, типа такого..


(Оффтоп)

Когда приходится я так делаю, ЯП фортран

Код:
!Открываем файл на запись
   open(150, file='data')

        !Здесь пишем в файл какие то данные
        !.....
        !.....
   
   close(150) 

!И вызываем на построение графика GnuPlot
call system('gnuplot -p plot.plt')


где plot.plt это текстовый нижеприведенный файл (пример для обычного графика функции), данный скрипт читает данные из записанного программой файла и строит график.

Код:
m="./data"
set terminal png size 1024,768
set output "plot.png"
set grid
#set logscale y
set xlabel "x"
set ylabel "y"
set title ' grafic'
plot m using 1:2 title "f"  with lines

 
 
 
 Re: ПО для построения графиков для публикации.
Сообщение17.05.2019, 17:20 
В предыдущем сообщении не то в командной строке написал, там не хватает пути к gnuplot-файлу в конце:

(Оффтоп)

gnuplot -e "f_in='Dir/InputFileName.txt'; f_out='Dir/OutputFileName.txt'; S = 2;" MyGnuplotGraphCode.gnu
Snegovik в сообщении #1393610 писал(а):
gnuplot -p plot.plt
Можно ещё через pipe вызывать..

(Оффтоп)

Код:
void Console::exec(const char *command, std::vector<char> &out)
{
    FILE *pipe;
    // запуск команды и открытие трубы для чтения
#ifdef WIN32
    pipe = _popen(command, "r");
#else
    pipe  = popen(command, "r");
#endif
    if(!pipe)
    {
        std::cerr << "error: cant open pipe to execute a command \"" << command << "\"" << std::endl;
        return;
    }
    // чтение вывода из трубы
    for(;;)
    {
        char c;
        if(fscanf(pipe, "%c", &c) == EOF)
            break;
        else
            out.push_back(c);
    }
    // закрытие трубы
#ifdef WIN32
    _pclose(pipe);
#else
    pclose(pipe);
#endif
}
И если написать в gnuplot-коде "set output" (без аргумента), то картинка вывалится в бинарном виде на консоль, откуда её можно прочитать через pipe, то есть, минуя запись на диск, можно сразу получить буфер с изображением и отобразить график на экране стандартными средствами.

Иногда удобнее основной gnuplot-код хранить в виде файла, а через программу передавать только некоторые аргументы (через ключ -e, как писал в предыдущем сообщении), в виде некоторого кода, который вставится в начало к основному коду. Тогда в большинстве случаев не нужно будет перекомпилировать, чтобы что-то подправить. (Повторяюсь)

Короче, конфетка, а не прога.

 
 
 [ Сообщений: 35 ]  На страницу Пред.  1, 2, 3


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group