Транслитерация содержимого файла с Python

У меня есть похожая запись о транслитерации имён файлов. Здесь же будет транслитерировано само содержимое файлов.

Ниже будет описано, как заменить в файле все кириллические символы на английские с помощью python3. Благодаря простоте скрипт легко модифицировать и подстроить под свои нужды. Читать

Ссылочный спам в Google Analytics и Yandex.Metrika

Описание проблемы

Обнаружение

Однажды я заметил в Google Analytics (далее GA) и Yandex.Metrika (далее YM), что у меня куча посещений из каких-то непонятных источников. Обрадовался даже поначалу. Поглядите и Вы (GA: Источники трафика → Обзор → Рефералы ; YM: Источники → сайты):

А вот соответствующая таблица (закрасил неважные столбцы): Читать

Шрифты в LaTeX

Иногда встречаются требования заполнять документ конкретным шрифтом. Как использовать в LaTeX стандартные шрифты от Windows и не только, например, Verdana, Courier, Georgia, Comic Sans MS, Ubuntu Mono и пр.? Читать

Установка Hexo и размещение сайта на Github Pages

В этой статье рассказано, как бесплатно за полчаса с нуля создать сайт и сделать его доступным по адресу sitename.github.io.

Hexo — это генератор статических сайтов, подобный Jekyll, Pelican, Octopress, Hugo и т.д.

Что такое генератор статических сайтов?

Сайт, который Вы читаете прямо сейчас — статический. Все странички здесь — это обычные html файлы. Большинство статических журналов создаются с помощью различных генераторов статических сайтов. Читать

Закомментировать блок в vim

Для комментирования блока я всегда использовал режим визуального выделения, который вызывается по ctrl+v (в gvim для windows по умолчанию ctrl+q).
Нужно поставить курсор, например, в начале строки наверху выделяемого блока, нажать ctrl+v, переместить курсор в конец параграфа, нажав }, затем нажать I (shift+i), ввести символ комментария (например, #) и нажать ESC. Читать подобные пассажи очень неудобно, поэтому обычно люди, рассказывая о последовательности действий в vim’e, пишут так (вместо ctrl обычно ставят шапку ^):
^v } I # <ESC>

Выглядит это так: Читать

Замена значений отметок по осям в matplotlib

Допустим, подписи к отметкам на горизонтальной оси у графика выглядят так:

А хочется заменить «4000» на «четыретыщи»:

Для этого перед сохранением файла и перед plt.show() пишем код:

from matplotlib.ticker import FuncFormatterdef my_formatter(x, pos): return str(‘%.0f’ % x).replace(‘4000′, u’четыретыщи’)ax.xaxis.set_major_formatter(FuncFormatter(my_formatter))

Вторая строка определяет функцию my_formatter(x, pos), зависящую от двух переменных: x — значение подписи к отметки, pos — позиция подписи (наверное).

Третья строка описывает, что должна выполнять данная функция, а именно она должна возвращать str(‘%.0f’ % x).replace(‘-‘, u’–’). В моём случае нужно взять ‘%.0f’ % x, т.е. целую часть (чтобы получить 3 цифры после запятой, смените 0 на 3. Однако будьте внимательны, надписи могут заезжать друг на друга, поэтому контролируйте количество цифр после запятой при построении графика). Чтобы можно было делать замену, нужно ещё обратить ‘%.0f’ % x в строку: str(‘%.0f’ % x). В скобках после replace идёт через запятую, что и на что нужно заменить. А заменить мы хотим минус (справа от нуля на клавиатуре) на, например, N-тире (про N-тире, M-тире и дефис см. тут). Можете просто скопировать отсюда: — (дефис), – (N-тире), — (M-тире). Обратите внимание на букву u перед ‘–’, она означает, что надо использовать юникод. Без неё не сработает вставка таких спецсимволов.

Четвёртая строка применяет нашу функцию к горизонтальной оси. Для воздействия на вертикальную ось замените xaxis на yaxis.

Также возможен вариант return str(‘%.0f’ % x).replace(‘-‘, ‘$-$’). То, что внутри долларов, будет обработано LaTeX’ом. Значит, можно там вставить ‘$endash$’, ‘$emdash$’ и т.д. Но тогда по plt.show() при наведении курсора на отрицательную координату будет показано, например, x=$endash$4000, хотя на сохранённом графике всё будет в порядке.

Возможно, чтобы Латех заработал, в начало программы придётся добавить строки:

import matplotlib as mplmpl.rcParams[‘text.usetex’]=Truempl.rcParams[‘text.latex.unicode’]=True
но у меня работает и без них.

Если что-то не заработало, пожалуйста, сообщите, попробуем разобраться.