Попробовали на работе предметно-ориентированное проектирование (Domain Driven Design). Это такой способ построения архитектуры, когда ты (чаще всего с помощью системы типов и ООП) описываешь физическую суть вещей, которые представлены в твоей программе.
Например, если в программе есть объект "Книга", то её нужно снабдить свойствами, которые бывают у книг в реальности: число страниц, автор, язык, тип обложки и т.д. При этом данные свойства должны быть такими, чтобы присвоить им нереалистичные значения было нельзя. Допустим, число страниц не может быть отрицательным (и скорее всего в реальном мире не может быть нулём). При попытке установить отрицательное число страниц программа должна выбросить исключение. А совсем в идеальном случае -- не дать этого сделать программисту на уровне статического анализа кода.
Описав все свойства книги, вы снабжаете её операциями, которые над ней можно сделать. Например, из книги можно вырвать страницу, и при этом число страниц уменьшается. Нет такого случая, когда можно вырвать страницу без изменения числа страниц. Вы строго программируете эту зависимость, делаете у книги метод "Вырвать страницу", а он уже уменьшает число. Кстати, свойство "Число страниц" при этом нельзя переназначить в уже созданной книге. Можно только создать книгу, передав в её конструктор (так называется в программировании функция создания объектов) заданное число страниц. Но поменять число страниц можно только специальными методами "Вырвать страницу" и "Вклеить страницу".
С помощью этого подхода вы гарантируете, что ваши объекты всегда находятся в валидном состоянии -- то есть таком, которое возможно в реальной жизни с объектом, представленным программой.
Плюсы подхода очевидны: меньше число ошибок. Код описывает сам себя, и программист, если не лезет внутрь объекта "Книга", вообще не сможет сделать с книгой ничего недопустимого.
Минусы, думаю, тоже понятны: изначально проектировать сложнее, нужно учесть много нюансов, писать тесты. Время разработки изрядно растёт. Изменение требований даётся дороже: например, если каким-то образом в ваш книжный магазин поступят книги со страницами из кевлара, которые невозможно вырвать :)
Но первый проект с этим подходом мы сдали хорошо, без багов. Лучше, чем многие предыдущие.
#dev
Прервем молчание красивым графиком про ИМТ взрослого населения в СШАотсюда.
Что мне нравится на пикче: все.
Начнем с главного.
1. Мы видим двумерную гистограмму совместного распределения роста и веса; частота каждой клеточки передается ее размером.
2. ИМТ — это детерминистическая функция роста и веса; на основе него выделяют степени ожирения / дистрофии. Эти классы показаны тонкой пунктирной линией и дополнительно выделены цветом.
Пройдемся по деталям.
1. Отдельные квадратики перекрывают друг друга. Это не мешает восприятию и придает изюминку и ритм. У графика словно появляется материальное / физическое измерение, какая-то тактильность; как будто он составлен из карточек.
2. Обратите внимание, как показано разбиение на степени ожирения / дистрофии. Общий тон задают тоненькие линии; "карточки" нарисованы поверх линий, поэтому введена дополнительная цветовая кодировка.
3. Палитра офигенная: негромкая, не выжигает глаза, устойчива ко всем видам дальтонизма и переводу в ЧБ вид (чекал вот тут). Нормальный ИМТ закодирован белым — это же гениально.
4. На графике нет отдельной легенды: она вынесена в свободное место наверху и совмещена с информацией о том, какая часть взрослой популяции приходится на каждый класс ИМТ.
5. Очень читаемые и одновременно ненавязчивые оси. При этом помимо оси X (вес) и Y (рост) у нас появляется третья ось: класс ИМТ. Обратите внимание, как органично включены единицы измерения в подписи на осях.
6. Оценим рубленый моноширинный шрифт для самого графика. Главная мысль напечатана на самом графике шрифтом с засечками.
7. На графике указан источник данных.
Крч, вах-вах, очень хорошо, Nathan Yau (автор графика) — виртуоз, хочу такой постер. (Иллюстрация сделана в R и потом допилена в Adobe Illustrator).
#dataviz
Про оформление отчетов
Меня тут студенты спрашивали про то, до какого знака округлять и как оформлять таблички и чиселка в тексте. Собрал сколько-то источников с пояснениями, выложу и сюда тоже (да, я помню, что обещал про проверки на нормальность, к середине января распинаю проекты, закончится семестр и сяду писать текст =).
Вообще, это не то чтобы какие-то устоявшиеся правила, это скорее вопрос дизайна, верстки, типографики и стандартов принятых в журнале. У физиков есть какие-то там свои конвенции, но попытка их применить в биомедицинском журнале достаточно часто вызывает непонимание рецензентов (например, у физиков принято среднее и sd округлять до разного количества знаков; биомедикам такое не заходит). Поэтому вместо жестких рекомендаций посоветую штуки, которые можно почитать, чтобы понять, чем руководствоваться при принятии решений (то есть, как можно уточнить правило "верстайте хорошо, а плохо не верстайте"). Начнем с двух статей; в обоих случаях советую почитать также статьи из библиографии, которые они упоминают.
1. Rudiments of Numeracy, Ehrenberg, 1977 — задает самую базовую рамку для верстки таблиц. Очень советую всем, хорошо написано, вынес оттуда много важного, а еще там очень красиво и минималистично. Рекомендасьон.
2. A Case for Simple Tables, Martin Koschat, 2005 — похожий текст, но поновее. На мой вкус, труба пониже, дым пожиже.
Из более объемных текстов можно посмотреть в сторону книжек Tufte; начните с The visual display of quantitative information, 2nd ed., 2007. Там про графики и иллюстрации вообще, но есть и про таблички. Автора люто-бешено котируют ребята из Бюро Горбунова и дизайнеры вообще.
Из более фастфудного: можно погулять по каналу и блогу Ильи Бирмана, он часто пишет про представление информации и таблички. В качестве стартовой точки можете взять вот этот список коротких видосиков с его курса про интерфейс и представление информации, минимум треть из них релевантна и для нас, пишущих и верстающих отчетики.
Есть специальный канал табличный дизайн, там прицельно про это пишут. У них же есть табличный курс, я фоново имею в плане на него сходить, когда будет время и настроение. Я про них писал в первом посте на канале.
Ну и можете погуглить всякие стайлгайды, госты и руководства для инженеров, физиков и верстальщиков, там наверняка этот вопрос будет освещен и нормирован.
А еще 31.12 активной жизни канала исполнился год. Ура и вау, то ли еще будет! 🙏
#dataviz#tables
«Основы визуализации данных» Клауса Уилке
Наконец-то вышел русскоязычный перевод книги Клауса Уилке «Основы визуализации данных» — это настоящая кладезь знаний для всех, кто хочет овладеть искусством и наукой визуализации данных. Автор, профессор интегративной биологии, обладает уникальной способностью объяснять сложные концепции простым и доступным языком, что делает книгу полезной как для новичков, так и для опытных специалистов.
С самого начала Уилке подчеркивает важность правильного отображения данных. Он отмечает, что визуализация данных — это не просто способ сделать отчеты более красивыми, но и мощный инструмент для анализа и коммуникации, способный существенно повлиять на интерпретацию информации. Автор проводит читателя через все этапы создания визуализации, от выбора правильного типа диаграммы до настройки осей и использования цветовых схем.
Одним из главных достоинств книги является ее структурированность и систематичность. Каждая глава посвящена отдельному аспекту визуализации, начиная с базовых принципов и заканчивая более сложными техниками. Например, глава, посвященная цветовым схемам, предоставляет исчерпывающие рекомендации по выбору и использованию цветов, учитывая как эстетические, так и функциональные аспекты. Уилке подробно объясняет, как различные цветовые схемы могут влиять на восприятие данных и как избежать распространенных ошибок, таких как чрезмерное использование цветов или недостаточное внимание к людям с дальтонизмом.
Большое внимание уделяется также выбору правильных типов диаграмм для различных типов данных. Автор приводит множество примеров, показывая, какие визуализации наиболее эффективны для представления количественных, категориальных или временных данных. Практические советы и примеры помогают читателю лучше понять, как применять теоретические знания на практике.
Все графики в книге подготовлены с помощью R и ggplot2, но вы не найдете ни строчки кода в книге. Можно отдельно посмотреть код самой книги, так и отдельных графиков.
Похвалы заслуживает глава, посвященная распространённым ошибкам в визуализации данных. Уилке подробно разбирает типичные ошибки, такие как избыточное использование трёхмерных графиков или отсутствие контекста, и предлагает практические решения для их избегания. Это делает книгу не только учебным пособием, но и ценным справочником, к которому можно обращаться в процессе работы.
В целом, «Основы визуализации данных» Клауса Уилке — это обязательное книга для всех, кто работает с данными и хочет научиться представлять их максимально эффективно и понятно. Книга сочетает в себе глубокие теоретические знания и практические советы, что делает её незаменимым инструментом для анализа и визуализации данных. Она помогает не только создавать красивые графики, но и делать ваши данные понятными и убедительными, что особенно важно в эпоху информационного перегруза.
#книги#dataviz#R#ggplot2#ВизуализацияДанных
Mapa anual de los patrones migratorios de las aves acuáticas en América del Norte https://t.co/j5A3xdWORH#science#bird#dataviz#map#ornithology@Team_eBirdhttps://t.co/nop8nTUCzbhttps://twitter.com/jm22381/status/1230853108915408899
🤖Краш-тест возможностей chatGPT-4 для создания визуализации данных в R с помощью ggplot2
GPT-4 можно использовать для улучшения визуализации данных в R (ggplot2), что делает его отличным инструментом как для начинающих, так и для продвинутых пользователей R. Мне понравилось, как автор видео общается с chatGPT-4. Хотя код на R иногда содержит ошибки и не работает, весь процесс выглядит очень захватывающим. От создания базовых графиков (смотрите с какой легкостью chatGPT пишет код для пайчарта 🙊 на зависть новичкам) до продвинутых техник использования ChatGPT для поиска данных, анализа и визуализации данных.
▶️ВидеоUsing GPT-4 for Data Viz (R/ggplot).
Мораль: Как мне кажется, с появлением AI люди НЕ потеряют способность к абстрактному мышлению, анализу, или креативность. Использование chatGPT только повысит производительность труда и качество работы человека.
#R#ggplot2#chatGPT4#визуализация_данных#dataviz#полезное
#DataScience#rstats#DataScientist#dataanalysis#r#programming#dataviz#statistics
In an era driven by data, harnessing the power of statistics is key to deriving meaningful insights from the vast sea of information around us.
pyoflife.com/statistics-wit
-----
Main channel: @repo_science
Coupons: @freecoupons_reposcience
-----
#ML#datascience#rstats#programming#dataviz#stats#analytics#machinelearning
6 formas de visualizar los resultados del análisis cluster jerárquico con R
-----
Main channel: @repo_science
Coupons: @freecoupons_reposcience
-----
🤔 А вы знали, что в Microsoft Excel есть встроенная функция 3D-карт? Она позволяет визуализировать данные, размещая их на модели земного шара.
Об этом рассказала японская энтузиастка Excel под ником Tsutsui0524, которая состоит в профильном Discord-сообществе пользователей, глубоко работающих с таблицами.
Учитывая, что Excel во многом лежит в основе мировой экономики, наличие таких инструментов уже не кажется неожиданным — хотя всё
равно вызывает удивление.
#Excel#Технологии#ВизуализацияДанных#DataViz#ЦифровыеИнструменты#IT#РаботаСДанными#БизнесИнструменты#Интересно#ФункцииExcel
#programming#GPT4#GPT3#dataviz#stats#analytics#ML#AI#IA
🚀
Cómo programar más rápidamente en #RStats con #ChatGPT
Escribir código es un proceso lento, especialmente cuando estás aprendiendo #datascience por primera vez. ¿Y si pudieras acelerarlo?
🔗Link
-----
Main channel: @repo_science
Coupons: @freecoupons_reposcience
-----