Недавно появилось несколько изящных способов использования ggplot2, и были опубликованы частичные или полные решения:
ggheat примечателен тем, что он скорее разрушает метафору ggplot, просто создавая график, а не возвращая объект.
Решения с фигурными скобками примечательны тем, что ни одно из них не вписывается в концепцию высокого уровня ggplot2 (например, вы должны указать диапазон точек, которые вы хотите разбить, а затем в другом месте можно указать геометрию того, как вы хотите отображать этот диапазон - скобка, коробка, фиолетовая корова и т. д.).
Книга ggplot2 ( который я скоро закажу и прочитал 2 онлайн-главы), похоже, об использовании грамматики и функций, а не написании новых или широкомасштабном расширении существующих.
Я хотел бы научиться добавлять конкретную функцию или разрабатывать новую geom, и сделайте это правильно. ggplot2
может не предназначаться как общий графический пакет в том же смысле, что и сетка
или базовая графика,но есть очень много графиков, которые являются всего лишь шагом или двумя расширениями от существующего geom ggplot2. Когда возникают такие ситуации, я обычно могу собрать достаточно объектов, чтобы что-то сделать один раз, но что, если мне понадобится один и тот же сюжет несколько десятков раз? Что, если другим людям это нравится и они хотят использовать его - теперь им приходится выполнять один и тот же процесс каждый раз, когда им нужен этот график. Мне кажется, что правильным решением является добавление в stat_heatplot
и geom_heatplot
или добавление geom_Tuftebox
для Tufte box plots и т.д. Тем не менее, я никогда не видел примера расширения ggplot2; просто примеры того, как его использовать.
Какие ресурсы существуют, чтобы глубже изучить ggplot2 и начать его расширять? Меня особенно интересует высокоуровневый способ указать диапазон на оси, как описано выше, но также приветствуются общие знания о том, что заставляет ggplot2 тикать.
При отсутствии связного руководства (которое редко существует для достаточно продвинутой работы и поэтому может не существовать здесь), как можно было бы изучить внутреннее устройство? Очевидно, что проверка источника - это один из способов, но с каких функций начать и т. Д.