Связь между построением пакетов в R
Я только начинаю с R и начинаю создавать диаграммы. Я знаю, что есть по крайней мере три разных пакета построения, стандартный, ggplot2 и решетка.
Являются ли эти пакеты взаимодополняющими, или они покрывают много одинаковой почвы? Если они являются взаимодополняющими, когда я их использую? Если они охватывают одно и то же место, которое я должен, как новый пользователь R, поставить свою энергию в освоение?
Ответы
Ответ 1
Существует 4 системы построения графиков. Существует стандартная сетка, решетка и ggplot2. Последние два представляют собой системы более высокого уровня, построенные на первых двух. У каждого есть свои преимущества и недостатки.
Стандартная графика дает вам абсолютный контроль над сюжетами и отлично подходит для создания одного сюжета именно так, как вам нравится. Решетка была разработана для решения ситуаций, когда вам нужны массивы участков. Он очень гибкий и может отображать большинство функций по вашим данным и по любой переменной. Если вы хотите, чтобы произвольная функция применялась к каждой предметной информации и представлялась в виде сетки графиков, решетка - ваш ребенок. Он построен на сетке и почти единственный способ использовать пакет сетки.
Последний, ggplot2, является графическим пакетом и новой философией в графике. Он основан на "Грамматике графики" Уилкинсона и пытается сделать именно это, генерировать грамматику для графики. Просто нужно изучить синтаксис более высокого уровня таких терминов, как geom (то, что вы делаете), stat (статистика по данным), фасет (отдельные панели), и вы можете построить очень сложные графики. Они, как правило, выглядят довольно красиво, особенно для электронного распространения. К сожалению, тонкий контроль над каждой отдельной деталью недоступен. Есть определенные вещи, которые вы просто не можете настроить. Тем не менее, многие пришли к разумному выводу, что это небольшая цена, чтобы заплатить за простой способ описания высококачественных участков.
Посмотрите на некоторые из графиков по умолчанию и примеров для ggplot2. Если они обратятся к вам, я предлагаю вам начать там. Если можно, попробуйте научиться делать все с помощью базового метода грамматики. Я лично считаю ошибкой, что Хэдли имеет удобные функции в качестве основной помощи на веб-сайте. Кажется, это подрывает целую цель ggplot2. Сокращенный синтаксис представлен в качестве основного интерфейса для справки, но в книге все о философии и фундаментальной грамматике.
(Я говорю это, но я делаю большую часть своего графика в базовой графике, потому что я нахожу забавным создание каждого отдельного компонента графиков.)
Ответ 2
Три пакета на самом деле представляют собой три разные концепции построения. Стандартное устройство построения графиков идет быстро, если вы знаете, что делаете, и, как мне кажется, достаточно интуитивно понятны в том смысле, что все команды имеют дело с определенными элементами графика (сюжет, название, ось, метки, легенда,...). Эти графики довольно гибкие в макете, и я нахожу их полезными для большинства стандартных статистических построений и довольно прямолинейных 2D-графиков.
Решетка - это устройство для построения сетки, которое обеспечивает большую гибкость. Вы можете в основном зарисовать все, что хотите, как показано на Галерея графиков R. Графики также можно аннотировать. Решетка - на мой взгляд - очень полезна для настраиваемых графиков высокого класса. Я использую его, главным образом, когда я делаю цветные карты, 3D-визуализации и комбинированные графики разных подмножеств моих данных (например, в построении модели, для эффектов разных терминов). См. Также Использование решетчатой графики в R.
ggplot2 на самом деле является попыткой объединить пользу обеих систем: вы сохраняете большую гибкость решетки, но работаете с легко определенными объектами графа, как и со стандартным построением графика. Графический вывод в целом лучше выглядит, чем стандартные настройки стандартного пакета, и с меньшими проблемами, чем с решеткой. Лично у меня только небольшой опыт работы с ggplot2, но он выглядит определенно многообещающим. Я по-прежнему предпочитаю пакет базового графа, но это, вероятно, больше связано с тем, что я привык к этому. Старые обезьяны и новые трюки и все это...
В принципе, я бы сказал, чтобы пойти с тем, с чем вам больше всего нравится. Я бы определенно научился, по крайней мере, основам стандартного пакета, но оттуда я думаю, что ggplot2 дает вам все, что вам нужно, если вы не собираетесь заниматься высокопрофильной графикой. Если вы действительно хотите создавать настраиваемые сложные графики, знакомство с решеткой может помочь вам. Но в остальном, два других обеспечивают все, что вам нужно, и довольно прямолинейны.