Це стара версія документу!
Чтобы запустить программу, написанную не на Python, а на других языках программирования (C/C++, Fortran, …), на Sage-сервере, используя Sage Notebook только как графический веб-интерфейс для этого, можно:
1. Загрузить в какой-либо рабочий лист (например, новый) свой файл с программой. Назовём его для примера program.c
2. Скомпилировать программу в исполнимый файл. Для этого в одной из ячеек рабочего листа выполнить команды:
os.chdir(DATA) os.system('gcc -o program.bin -program.c')
или
os.system('cc -lm -fopenmp -o program.bin program.c')
или
os.system("gfortran -o program.bin *.f90")
3. Затем выполнить скомпилированную программу
os.chdir(DATA) os.system('./program.bin')
Если в программе используется вывод чего-либо на экран (например, printf()
в языке C), то программа будет работать только тогда, когда её рабочий лист открыт в окне браузера. Это связано с тем, что вывод на экран буферизируется, и когда вы закрываете рабочий лист, буфер начинает заполняться, так как реального вывода на экран не происходит. После заполнения буфера ядро ОС приостанавливает работу программы до тех пор, пока всё накопившееся в буфере не будет реально выведено на экран.
Чтобы избежать остановки расчётов через пару минут после закрытия браузера, существует несколько вариантов:
printf()
-ы) (плохой, неудобный вариант);printf(…)
на fprintf(file,…)
) (плохой, негибкий вариант);./program.bin > program.log
) (хороший, гибкий вариант);
Если использован последний из вариантов (хороший, годный), то вывод программы можно всегда проверить вручную, выполнив
(а оно не выполнится!!!)
os.chdir(DATA) os.system('tail program.log')
http://matplotlib.org/users/customizing.html
import matplotlib as mpl; mpl.rcParams['font.family'] = 'STIXGeneral'; mpl.rcParams['axes.labelsize'] = '18'; mpl.rcParams['xtick.labelsize'] = '18'; mpl.rcParams['ytick.labelsize'] = '18'; mpl.rcParams['axes.grid'] = 'True'; mpl.rcParams['figure.figsize'] = '5,4'; mpl.rcParams['savefig.pad_inches'] = '0.1'; mpl.rcParams['savefig.bbox'] = 'tight';
http://ask.sagemath.org/question/9581/markers-in-list_plot/?answer=14317#post-id-14317
list_plot([(1,2),(2,2),(3,3)],plotjoined=True,linestyle='',marker='v')