Связь между построением пакетов в R - PullRequest
15 голосов
/ 20 сентября 2010

Я только начинаю с R и начинаю создавать диаграммы. Мне известно, что существует как минимум три различных пакета для печати, стандартный, ggplot2 и lattice.

Являются ли эти пакеты взаимодополняющими или они охватывают одну и ту же почву? Если они дополняют друг друга, когда я использую каждый? Если они охватывают одну и ту же почву, то какой я, как новый пользователь R, должен направить свою энергию на освоение?

Ответы [ 2 ]

24 голосов
/ 20 сентября 2010

Есть 4 системы печати. Существует стандарт, сетка, решетка и ggplot2. Последние два - системы более высокого уровня, построенные на первых двух. У каждого есть свои преимущества и недостатки.

Стандартная графика дает вам абсолютный контроль над графиками и очень удобно делать один график так, как вам нравится. Решетка была разработана для решения ситуаций, когда вам нужны массивы графиков. Он очень гибкий и может отображать практически любую функцию поверх ваших данных и любой переменной. Если вы хотите, чтобы произвольная функция применялась к данным каждого субъекта и представлялась в виде сетки графиков, решетка - это ваш ребенок. Он построен на сетке и почти единственный способ использовать пакет сетки.

Последний, ggplot2, является одновременно графическим пакетом и новой философией. Он основан на «Грамматике графики» Уилкинсона и пытается сделать именно это, генерировать грамматику для графики. Нужно просто изучить синтаксис более высокого уровня таких терминов, как geom (то, что вы строите), stat (статистика по данным), фасет (отдельные панели), и вы можете строить очень сложные графики. Как правило, они получаются довольно милыми, особенно для электронного распространения. К сожалению, точный контроль каждой отдельной детали не доступен. Есть определенные вещи, которые вы просто не можете отрегулировать. Тем не менее, многие пришли к вменяемому выводу, что это небольшая цена за простой способ описания высококачественных участков.

Посмотрите на некоторые графики по умолчанию и примеры графиков для ggplot2. Если они обратятся к вам, я бы посоветовал вам начать там. Если вы можете, попробуйте научиться делать все с помощью основного грамматического метода. Лично я считаю ошибкой то, что Хэдли имеет удобные функции в качестве основной справки на сайте. Кажется, это подрывает всю цель ggplot2. Сокращенный синтаксис представлен в качестве основного интерфейса для помощи, но книга посвящена философии и фундаментальной грамматике.

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

7 голосов
/ 20 сентября 2010

Три пакета на самом деле представляют собой три разные концепции построения.Стандартное устройство построения графиков работает быстро, если вы знаете, что делаете, и, на мой взгляд, довольно интуитивно понятно в том смысле, что все команды имеют дело с конкретными элементами графика (сюжет, заголовок, ось, метки, легенда, ....).Эти графики довольно гибки в компоновке, и я считаю их полезными для большинства стандартных статистических графиков и довольно простых 2D-графиков.

Решетка - это устройство построения на основе сетки, которое обеспечивает гораздо большую гибкость.В принципе, вы можете построить что угодно, как показано в R Graph Gallery .Графики также могут быть аннотированы.Решетка, на мой взгляд, очень полезна для настраиваемых графиков высокого уровня.Я использую его в основном при создании цветовых карт, 3D-визуализаций и комбинированных графиков различных подмножеств моих данных (например, при построении модели, для влияния различных терминов).См. Также Использование решетчатой ​​графики в R .

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

По сути, я бы сказал, что вам нужно больше всего.Я определенно изучил бы, по крайней мере, основы стандартного пакета, но оттуда, я думаю, ggplot2 даст вам все, что вам нужно, если вы не собираетесь заниматься высококлассной графикой.Если вы действительно хотите создавать сложные сложные графики, знакомство с решеткой может только помочь вам.Но в остальном два других обеспечивают все необходимое и довольно просты в использовании.

...