Автоматизированное создание диаграмм в xkcd-стиле: из серьёзного в забавное

http://blog.wolfram.com/2012/10/05/automating-xkcd-diagrams-transforming-serious-to-funny/
  • Перевод

Перевод поста Виталия Каурова "Automating xkcd Diagrams: Transforming Serious to Funny".
Скачать файл, содержащий текст статьи, интерактивные модели и весь код, приведенный в статье, можно здесь.
Выражаю огромную благодарность Кириллу Гузенко за помощь в переводе.

Утром в понедельник я наткнулся на интересный вопрос, опубликованный в Mathematica Stack Exchange, с нехитрым заголовком — "создание графиков в xkcd-стиле". Из-за популярности веб-комиксов xkcd Рэндалла Манро (Randall Munroe), я ожидал, что люди добавят себе несколько закладок этой страницы и с десяток up-vote. Тогда я ещё не знал, как всё обернётся. Сложно предсказать вирусность какого-то мема, однако если удалось создать такой, то весьма здорово наблюдать, как растёт его популярность и как он распространяется в интернете. Через два дня этот пост имел уже более 100 тысяч просмотров, двести up-vote и 150 закладок; стали возникать ответы и схожие посты в других разделах Stack Exchange, в Twitter разразился небольшой ураган по этому поводу, появлялись обсуждения в Hacker News и reddit. Тут я приведу оригинал поста Amatya с примером изображения в xkcd-стиле:

«Я получил электронное письмо, на которое я захотел ответить с графиком в xkcd-стиле, но я не мог справиться с этим. Всё, что я рисовал, выглядело как надо, однако я не мог придумать такой команды для Plot Legends, чтобы сделать фрагменты текста плавающими. Может, есть какие-то идеи, как можно было бы создать графики в xkcd-стиле? Когда всё выглядит рисованным от руки и неточным. Думаю, рисование таких странных кривых в Mathematica должно быть трудным в реализации.»

Walking back to my front door at night


Однако оказывается, что рисование таких кривых линий в Mathematica столь же легко, сколь и весело. Mathematica Stack Exchange — быстрорастущее сообщество, организованное в формате вопрос-ответ, которое развивается исключительно усилиями самих пользователей. Я был рад увидеть, что он привлёк столько внимания этим интригующим вопросом и получил так много красивых и продуманных ответов. Рекомендую посетить оригинальный пост, чтобы просмотреть все ответы. Здесь я приведу лишь одно из решений, которое привёл Саймон Вудс (Simon Woods), которое более или менее универсально и применимо ко всем типам графиков в Mathematica, и даже к изображениям.

Саймон начинал с задания шрифта, который встречается в комиксах xkcd ().



Следующим шагом было задание такой функции, которая конвертировала бы выводимый шрифт в стилизованный под xkcd. Для заданной точки на графике и смещения для текста, с помощью сплайна обозначенные точки соединяются плавной кривой.



Теперь самое время задать правила, которые для некоторого графического объекта будут заменять стиль текста на определённый нами xkcd-стиль, а также менять стиль линий. Обратите внимание, как в шестой строчке кода заменяются линии на жирные чёрные, которые отрисовываются поверх изначальных, но несколько более широких белых линий. Это нужно для того, чтобы задать заметный промежуток на одной кривой при пересечении с другой – характерная черта нарисованных от руки карикатурных диаграмм.



Следующая функция применяет вышеприведённые правила и делает оси более толстыми.





Наконец, пришло время для части, отвечающей за обработку изображений — на мой взгляд, самая инновационная и интересная часть решения Саймона. Причина — возможность работы независимо от остального кода и с произвольными изображениями, а не только с графикой Mathematica. Как мы увидим далее, это даёт нам возможность применить xkcd-стиль к любой диаграмме. Цель представленной ниже функции — слегка исказить линии на изображении, чтобы сымитировать неровность, которая получается из-за начертания от руки.



Сперва функция растеризует графику Mathematica, преобразуя её в изображение. Затем она создаёт два случайных изображения и сглаживает их посредством свёртки с гауссовым ядром. Случайно, но плавно меняющиеся значения каждого пикселя этих изображений являются основой для определения смещений пикселей в исходном изображении. Смещение пикселей задаётся функцией ImageTransformation. Самая последняя функция применяет xkcd-стили и искажает изображения.



Давайте опробуем это на нескольких графиках. Вот первый пример, который приводит Саймон, показывая, как всё это работает вместе.





И вот несколько других примеров 2D и 3D графики, которые мы получили, используя xkcdConvert, из самых разнообразных графических функций Mathematica. Следует заметить, что xkcdConvert может применяться как к названиям функций, так и к результатам работы графических функций. То есть можно сперва создать некоторую 3D графику, провращать её, приблизить, панорамировать и лишь затем, уже к тому, что получилось, применить xkcdConvert.



Стоит отметить, что Джон Маклун (Jon McLoone) несколько лет назад писал в посте "Self-Description" об автоматизации создания изображений в xkcd-стиле. Там он показывал, как создавать диаграммы в xkcd-стиле и добавлять различные цвета. Теперь мы можем добавить «кривоватость», вызванную ручным написанием:





Полагаю, всё выглядит довольно-таки аутентично. Отличная работа, Саймон! Я настоятельно рекомендую посмотреть на примеры кода и другие решения, которые приведены в оригинальном посте. Обратите внимание, как функция xkcdConvert может применяться к изображению напрямую. Однако у нас отсутствует возможность заменить шрифты на «забавные», так как шрифты тоже находятся в растровом виде. Тем не менее, эффект получается довольно реалистичным.

У Ю-Сунга Чана (Yu-Sung Chang) была прекрасная идея для создания CDF-приложения, которое берёт изображение по ссылке и стилизует его под xkcd. Ниже мы используем идею, которая немного отличается от идеи Саймона. В нашем случае рандомизированная функция BSplineFunction служит ориентиром для вытеснения пикселей ImageTransformation. Так же добавляется возможность регулировать амплитуду и частоту. Попробуйте вставить ссылку на изображение графика и просто нажмите Enter. Если Вам захочется, Вы можете инвертировать цвета, а так же можно скопировать результат в буфер обмена, чтобы сохранить изображение на своём компьютере.


(скачать CDF-манипулятор)

Возникает вопрос — как продукт, который используется профессионалами в различных отраслях и исследователями в своих научных работах может так эффективно решать столь необычные задачи, включая задачи в сфере искусства, креативных направлений и нестандартных подходов. Ответ — интеграция. В Mathematica представлен широкий набор технологий и алгоритмов, доступных «прямо из коробки». Они разработаны очень тщательно и последовательно, так что пользователи могут из них собирать свои программы как из деталек конструктора LEGO. Давайте посмотрим, какие области мы затронули: графика, правила и шаблоны, обработка изображений, импорт и экспорт, операции с сетью, динамика и интерактивность, создание интерфейсов, развёртывание и использование CDF. Так что я надеюсь, что наши читатели, когда в следующий раз будут работать в Mathematica, когда будут решать уравнения, строить графики — будут помнить, что практически безграничные возможности для импровизации могут увести их далеко от повседневных задач.

Примечание


Мало кто знает, что Wolfram|Alpha может выдавать свои результаты в xkcd-стиле. Для этого в начале запроса достаточно просто указать слово "handwritten"

Несколько примеров:

Запрос "handwritten habrahabr"



Запрос "handwritten Runge-Kutta method, dy/dx = -2xy, y(0) = 2, from 1 to 3, h = .25"



Запрос "handwritten radioactive elements"

Wolfram Research 45,76
Wolfram Language, Mathematica, Wolfram Alpha и др.
Поделиться публикацией
Комментарии 13
  • НЛО прилетело и опубликовало эту надпись здесь
    • –3
      Хочется спросить, а вы дали себе труд пройти по изначальной ссылке?

      Xkcd-style-graphs

      За этот вопрос проголосовали 467 человек (на данный момент), и 435 из них посчитали его достаточно интересным, чтобы добавить в закладки. Подобные вопросы сообщество Mathematica SE использует для «спуска пара» и разрядки, и как интересные упражнения.

      В дальнейшем, эта тема стала популярной на всей сети Stack Exchange (и не только), и появилась масса вариантов реализации того же самого на других языках (Python, R, etc).

      Ваш комментарий эквивалентен тому, что все те, кому понравилось это обсуждение, на Mathematica Stack Exchange и других площадках — идиоты. Хочется спросить — а вы не много на себя берете?
      • НЛО прилетело и опубликовало эту надпись здесь
        • –1
          Да нет, все атрибуты спора не по существу как раз у вас.

          Во-первых, переход на личность автора поста, вместо обсуждения непосредственно предмета статьи (иначе какое имеет значение его статус) — это, кстати, один из ваших собственных аргументов в одном из предыдущих комментариев, с которым я по большей части согласен.

          Во-вторых, вы даете оценку (бессмысленный, etc), без объяснений, почему вы так считаете. Это не есть признак хорошего тона или сколько-нибудь конструктивной критики.

          >Стандартный приём нечестного спора — вы приписываете мне утверждение, которого я >не высказывал, что уже изначально не настраивает на конструктивный диалог с вами.

          Это всего лишь к вам вернулось то, с чем вы выступили. Если бы вы выдали конструктивную критику, а не label (высказанный к тому же с переходом на личности), мой ответ был бы другим. Когда человек, не разобравшись в вопросе, и игнорируя мнения массы других людей, выдает оценки, из этого вполне ясно следует, кем он их считает.

          >Кроме того, поскольку вы имеете отношение к компании Wolfram, то это, мягко говоря, >снижает вероятность непредвзятости вашего мнения.

          У вас нет данных для таких выводов. Чтобы говорить о вероятностях в отношении поступков и высказываний человека, нужно его знать, или во всяком случае иметь статистику таких поступков и высказываний. Я не скрываю своей деятельности и своих взглядов, и при желании такую статистику легко собрать по моим постам на Mathematica Stack Exchange и Stack Overflow. Ваше же утверждение лишь говорит об определенной поверхностности ваших суждений.

          >И сколько это составляет процентов от общего числа просмотров? 1? 0.1? И сколько >человек проголосовали только потому, что в статье упоминаются комиксы xkcd? А >сколько человек прочитало статью и поняло о чем речь, а не автоматически лайкнуло.

          Не понимаю, при чем тут общее число просмотров. Вы опять не разобрались в вопросе. На Mathematica Stack Exchange — сильное сообщество профессионалов в разных областях (от естественных наук до программирования), которые используют Wolfram Mathematica для работы. Если бы вы посмотрели на посты того обсуждения, комментарии к ним и т.д., вы бы увидели интерес и однозначно позитивное отношение к этой теме всего сообщества. Могу предположить, что по крайней мере сотня голосов за этот вопрос была от весьма квалифицированных специалистов в своих областях.

          И как я уже отметил в предыдущем комментарии, вопрос носил достаточно шуточный характер, и таким его и восприняли. Никто не говорит о том, что там решилась какая-то фундаментальная проблема. Но вот методы решения могут быть вполне интересны.

          >И, несмотря на это, всё равно количество плюсующих больше нуля — что подтверждает >мой тезис об автолайканьи.

          Этот эффект имеет место, к сожалению. Я этого не отрицаю.

          >Так что ваши цифры ничего не доказывают.

          Они доказывают (если их обдумать) то, что есть достаточно много людей с головой на плечах, которые посчитали эту тему интересной. Было ли их 500 или 50, я не могу сказать точно (хотя могу предположить), но и 50 на мой взгляд вполне достаточно, чтобы не ставить label «бессмысленный» без дальнейших комментариев по существу.

          >И то, что эта статья понравилась посетителям сообщества Mathematica, ничего не
          > говорит о ценности этой статьи вне сообщества.

          Во-первых, говорит, поскольку большинство опытных пользователей Mathematica используют эту среду не просто так, а в приложении к различным областям знаний.

          Во-вторых, позвольте остальным решать самим, каждому для себя. Ваш комментарий, в том виде и форме, как он был написан, вешает label без объяснений. Для чего в таком случае вы его пишете?

          >А что, наличие первоисточника гарантирует качество статьи?

          Не понимаю, зачем передергивать. Там был вопрос об упоминании библиотеки в посте. Библиотека была написана человеком, который сам прочел тот пост и заинтересовался. Так что была перепутана причина со следствием. Качество (whatever that means) там не обсуждалось — вопрос был в том, кто первый рассмотрел эту тему.

          Вообще, я ввязался в полемику с вами, поскольку мне импонирует критическое мышление и принцип бритвы Оккама, и я отчасти согласен с некоторыми вашими комментариями. Но в этой дискуссии у вас много поверхностной и необоснованной критики. Вы бы хоть сами держали планку, которую выставляете для других.
          • +5
            И еще скажу.

            Давайте посмотрим на данный пример. Изначальный пост, о котором идет речь в статье, собрал 160000 просмотров только на Mathematica StackExchange. Далее, и именно с подачи этого первоначального поста и реализаций этой задачи сообществом Mathematica Stack Exchange, этот вопрос заинтересовал многие другие сообщества, в частности

            R: (четвертый по популярности вопрос из 94000 вопросов на r StackOverflow tag)

            Matlab: (второй по популярности вопрос из 48000+ вопросов на matlab StackOverflow tag)

            TEX: (восемнадцатый по популярности вопрос)

            Python: (не столь популярен, но тем не менее включен в matplotlib)

            Hacker News

            В этих сообществах, известные разработчики заинтересовались этой задачей настолько, что потратили время на реализацию соответствующего функционала. Вот примеры соответствующих высказываний:

            Hadley Wickham (Эксперт мирового уровня в R): «I'm tempted, but it would require a big rewrite of the theme system in order to do the axes right»

            Shog9 (StackOverflow moderator, rep. 93000+): " ...Also, the answers here are nice. Re-opening".

            gnovice (StackOverflow Matlab expert, первый по рейтингу эксперт в SO Matlab tag ): реализация

            Jonas (StackOverflow Matlab expert, третий по рейтингу эксперт в SO Matlab tag ): реализация

            ziggystar (Scala expert): «What do I have to cite when using the package in publications»

            Ben Bolker (R expert, десятый по рейтингу в эксперт в SO R tag ), реализация

            Simon Woods (Mathematica expert, десятый по рейтингу эксперт в сообществе Mathematica Stack Exchange ), самая популярная изначальная реализация

            stevenh (Electrical Engineering expert, второй по рейтингу эксперт в сообществе Electrical Engineering Stack Exchange ): «200 upvotes in 2 days, congrats!!! (shouldn't we have a new badge for this, a platinum one?) „

            Mr. Wizard (Mathematica expert, первый по рейтингу эксперт в сообществе Mathematica Stack Exchange, модератор сообщества ), реализация

            GuessWhoItIs (Mathematica expert, четырнадцатый по рейтингу эксперт в сообществе Mathematica Stack Exchange, модератор сообщества, а также экперт сообщества Mathematics at StackExchange.com, 51 по рейтингу там) — реализация

            TheToad (Mathematica expert, четырнадцатый по рейтингу эксперт в сообществе Mathematica Stack Exchange, модератор сообщества), реализация

            Tim Post, moderator Stack Overflow и всей сети Stack Exchange, комментарий: “...But in all fairness, when a single answer inspires me to try the same thing in not one but two different languages, said answer and the question it answers are worthy of an up vote»

            whuber (Statistics expert, первый по рейтингу эксперт сообщества CrossValidated Stack Exchange ),
            комментарий: «Mathematica 9 users please see the follow-up post at mathematica.stackexchange.com/questions/17272/\[Ellipsis] concerning slower speeds»


            Итак, что мы видим:

            На сообществе Mathematica Stack Exchange, была рассмотрена и решена в нескольких вариациях некоторая задача. Далее, видные эксперты из целого ряда экспертных сообществ (Mathematica, R, Matlab, TEX, CrossValidated, StackOverflow) не просто заинтересовались темой, но нашли время на свои реализации этой задачи. В общем и целом, эта тема имела достаточно большой резонанс среди разработчиков в разных языках и системах.

            Теперь, когда эта тема была освещена на русском языке благодаря переводу Романа и Кирилла (я не говорю сейчас о том, как именно), приходит некто brainick, и говорит следующее: «Очередной перевод очередных бессмысленных свистелок-п-к от первого сертифицированного инструктора технологий и учебных курсов компании Wolfram Research на территории Восточной Европы.». Используя методы социального инжениринга (эффект преимущества первого комментария, эффект «лайканья» без внимательного прочтения, определенный способ построения фраз, поражающий лаконичностью и остротой критики вкупе с замечательным чувством юмора, etc), этот некто добивается того, чтобы не слишком взыскательный читатель сразу получил негативное впечатление от темы, просто глядя на комментарии и их рейтинги.

            Теперь появляется ваш покорный слуга ( M SE, StackOverflow), и говорит буквально то, что я сейчас продемонстрировал наглядно ссылками — комментарий в такой форме без дополнительных пояснений эквивалентен тому, что вы считаете всех тех, кому понравилась эта тема, включая экспертов перечисленных выше, и многих других — идиотами, так как как еще можно назвать человека, которому нравятся «бессмысленные свистелки-п-ки».

            В ответ, я получаю множественные попытки передергивания, и статус адвоката дьявола.

            Brainick, вы понимаете, что своей деятельностью псевдо-критика вы наносите вред этому, и так не супер-блистательному сообществу? Вы создаете стадный эффект дизлайков, отсекающий от потенциальных читателей вполне годные и интересные темы.

            В вас, brainick, как в зеркале, видны все сильные и слабые стороны данного сообщества. И мне, как человеку, прожившему и проработавшему много лет на западе, и сейчас работающему на западную компанию и на западных экспертных площадках, становится скучно и грустно. Я вернулся в нашу страну, с надеждой что наша ментальность и творческий потенциал позволят нам в достаточно скором времени занять достойное место в мире, в частности в области технологий, но ваш пример удручает. Вы стремитесь по форме приблизиться к западным источникам и стандартам, но не ухватываете главного. Вы критикуете переводы, толком не зная Английского, да и в теме будучи по-видимому лишь поверхностно.

            Полагаю, мне позволительна такая критика. У меня магистр и красный диплом по теор. физике отсюда (специализация — астрофизика). Я получил PHD по квантовой теории поля в одном из лучших по физике университетов в Штатах, затем работал в UK как post-doc в области мат.физики. Имею 7 опубликованных работ в соавторстве, в лучших западных журналах, участвовал как докладчик во многих международных конференциях. Имею приличный опыт преподавания в западных вузах, и награды за это оттуда. Несколько лет назад ушел из науки и сейчас занимаюсь разработкой ПО. Профессионально — в большей или меньшей степени — пишу код на С, Java, javascript, Python, Mathematica. Владею английским как русским (а может, и лучше теперь уже). Помимо прочего, написал достаточно популярный на западе учебник, и кстати ни цента ни с кого не взял. Кроме того, я лично, за годы работы на форумах, сделал более тысячи развернутых постов, передал много знаний и научил множество людей, которые теперь используют их для своей работы.

            Вместо конструктива (поддержка других, передача знаний), у вас один негатив. На негативе ничего не построить. На западе экспертные сообщества обладают высокой внутренней этикой, духом взаимной поддержки и коллаборации, и снисходительны к огрехам участников, особенно непреднамеренным. Здесь же (конкретно на Хабре), все что я вижу пока что, это засилие поверхностных критиканов и / или людей, занимающихся социальным инженирингом. И такие как вы, явно обладающие и определенными знаниями, и образованием, и критическим мышлением, несут за это большую ответственность, чем просто те, кто бездумно идут по вашим следам и ставят лайки. Благодаря таким как вы, мы имеем то, что имеем. И ваши сожаления по поводу отечественной науки, с которыми я в принципе до некоторой степени согласен, в контексте ваших собственных действий выглядят как крокодиловы слезы. Я не думаю, что буду часто возвращаться на эту площадку — у меня есть более важные и интересные занятия. Общение с вами было весьма познавательным, хотя не могу назвать его приятным.
            • +4
              К сожалению, по-видимому карма не позволяет мне больше нормально вставлять ссылки, так что для интересующихся привожу их в «голом» виде:

              R: stackoverflow.com/q/12675147/565518 (четвертый по популярности вопрос из 94000 вопросов на r StackOverflow tag)

              Matlab: stackoverflow.com/q/12701841/565518 (второй по популярности вопрос из 48000+ вопросов на matlab StackOverflow tag, stackoverflow.com/questions/tagged/matlab?sort=votes&pageSize=30)

              TEX: tex.stackexchange.com/questions/74878/create-xkcd-style-diagram-in-tex (восемнадцатый по популярности вопрос, tex.stackexchange.com/questions?page=2&sort=votes)

              Python: jakevdp.github.io/blog/2012/10/07/xkcd-style-plots-in-matplotlib (не столь популярен, но тем не менее включен в matplotlib)

              Hacker News: news.ycombinator.com/item?id=4597977

              В этих сообществах, известные разработчики заинтересовались этой задачей настолько, что потратили время на реализацию соответствующего функционала. Вот примеры соответствующих высказываний:

              Hadley Wickham (Эксперт мирового уровня в R): www.reddit.com/r/programming/comments/10rf07/create_xkcd_style_charts_using_mathematica/c6h6gij
              «I'm tempted, but it would require a big rewrite of the theme system in order to do the axes right»

              Shog9 (StackOverflow moderator, rep. 93000+): " Also, the answers here are nice. Re-opening". stackoverflow.com/questions/12701841/xkcd-style-graphs-in-matlab#comment17207984_12701841

              gnovice (StackOverflow Matlab expert, первый по рейтингу эксперт в SO Matlab tag :http://stackoverflow.com/tags/matlab/topusers): реализация stackoverflow.com/a/12716083

              Jonas (StackOverflow Matlab expert, третий по рейтингу эксперт в SO Matlab tag :http://stackoverflow.com/tags/matlab/topusers): реализация stackoverflow.com/a/12709481

              ziggystar (Scala expert): «What do I have to cite when using the package in publications» stackoverflow.com/questions/12675147/how-can-we-make-xkcd-style-graphs#comment25215750_16597217

              Ben Bolker (R expert, десятый по рейтингу в эксперт в SO R tag,: stackoverflow.com/tags/r/topusers), реализация: stackoverflow.com/a/12680311

              Simon Woods (Mathematica expert, десятый по рейтингу эксперт в сообществе Mathematica Stack Exchange mathematica.stackexchange.com/users?tab=Reputation&filter=all), самая популярная изначальная реализация: mathematica.stackexchange.com/a/11355

              stevenh (Electrical Engineering expert, второй по рейтингу эксперт в сообществе Electrical Engineering Stack Exchange, electronics.stackexchange.com/users?tab=Reputation&filter=all ): «200 upvotes in 2 days, congrats!!! (shouldn't we have a new badge for this, a platinum one?) », mathematica.stackexchange.com/questions/11350/xkcd-style-graphs#comment34546_11353

              Mr. Wizard (Mathematica expert, первый по рейтингу эксперт в сообществе Mathematica Stack Exchange,http://mathematica.stackexchange.com/users?tab=Reputation&filter=all, модератор сообщества ), реализация mathematica.stackexchange.com/a/11402

              GuessWhoItIs (Mathematica expert, четырнадцатый по рейтингу эксперт в сообществе Mathematica Stack Exchange,http://mathematica.stackexchange.com/users?tab=Reputation&filter=all, модератор сообщества, а также экперт сообщества Mathematics at StackExchange.com, 51 по рейтингу там, math.stackexchange.com/users?page=2&tab=reputation&filter=all) -реализация: mathematica.stackexchange.com/a/11393

              TheToad (Mathematica expert, четырнадцатый по рейтингу эксперт в сообществе Mathematica Stack Exchange,http://mathematica.stackexchange.com/users?tab=Reputation&filter=all, модератор сообщества), реализация: mathematica.stackexchange.com/a/11455

              Tim Post, moderator Stack Overflow и всей сети Stack Exchange, stackoverflow.com/users/50049/tim-post, "...But in all fairness, when a single answer inspires me to try the same thing in not one but two different languages, said answer and the question it answers are worthy of an up vote" (http://mathematica.stackexchange.com/questions/11350/xkcd-style-graphs/11455#comment34461_11353)

              whuber (Statistics expert, первый по рейтингу эксперт сообщества CrossValidated Stack Exchange, stats.stackexchange.com/users?tab=Reputation&filter=all ), «Mathematica 9 users please see the follow-up post at mathematica.stackexchange.com/questions/17272/\[Ellipsis] concerning slower speeds»

              Мой профиль на M SE

              mathematica.stackexchange.com/users?tab=Reputation&filter=all
              mathematica.stackexchange.com/users/81/leonid-shifrin

              Мой профиль на StackOverflow

              stackoverflow.com/tags/wolfram-mathematica/topusers
              stackoverflow.com/users/565518/leonid-shifrin
        • +9
          Странно, что ни одного упоминания matplotlib — с 2013 года это там есть (реализовано в 2012): jakevdp.github.io/blog/2013/07/10/XKCD-plots-in-matplotlib. Вроде бы и на хабре была статья, но не нашёл.
          • +2
            Пост написан Виталием относительно давно — 5 октября 2012 г., т. е. до появления того, о чем вы написали.
            • 0
              А, понятно.
              Полистал — действительно, автор pyplot.xkcd начал работать над реализацией после того самого обсуждения на SE. В посте от 7 октября 2012 есть ссылка на SE.
            • 0
              Этот комментарий адресован больше не вам, а тем, кто так лихо ставит плюсы. Мне интересно, что это, предвзятость, невнимательность или стадное чувство. Неужели так трудно проследить историю и найти первоисточник?
            • 0
              Было же уже.
              На жестком диске лежит xkcdRightHand.ttf датированный 08.10.2012.
              И, если мне не изменяет память, скачанный по ссылке из статьи на хабре, про графики в стиле xkcd.
              • +2
                Вай нот?

                • +4
                  Я в противоречивых чувствах.

                  Почему графики xkcd привлекают внимание? Потому что это xkcd Потому что они нарисованы от руки, а значит, в наше волшебное время автоматически генерируемой информации, вероятнее всего, несут что-то, что человек хотел сказать. Потому что человек just for fun не будет рисовать в неудачных координатах трёхминутный график котировок акций.

                  И вот, теперь, обсуждается вопрос, как бы нам рисовать трёхминутный график котировок акций роботом так, чтобы человеки подумали, что это рисовали человеки и внимательно на него посмотрели.

                  Ну надругательство же.

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                  Самое читаемое