Есть ли некоторый способ использовать определенное маленькое изображение в качестве точки в scatterplot с ggplot2. Идеально я захочу изменить размер изображений на основе переменной.
Вот пример:
library(ggplot2)
p <- ggplot(mtcars, aes(wt, mpg))
p + geom_point(aes(size = qsec, shape = factor(cyl)))
Таким образом, я в основном хочу знать, существует ли способ предоставить определенное изображение как форму?
Во-первых, вот ваш ответ:
Чтобы показать вам, как лучше использовать виджеты для представления дифференциации данных, я ссылаюсь на пример chernoff faces в галерее R графов:
(source: free.fr)
Весь код для генерации этого примера доступен на сайте.
Или посмотрите ggplot's stat_spoke на простой виджет:
(источник: had.co.nz)
grImport предоставляет механизм импорта простых PDF изображений в ваш сюжет для использования в качестве точек.
Теперь следуйте критике вашего примера.
Это не диаграмма рассеяния. По сути, это упорядоченный список упорядоченных точек данных, где цвет используется для обозначения одной из текстовых переменных, а неинформативный и избыточный виджет использовался для кадрирования данных, но в остальном не обеспечивает визуальной обратной связи по размеру и форме.
Это не очень хороший график, так как он полностью не отвечает на заданный вопрос "Больше ли платит за лучшие результаты", и оставляет читателя бороться за то, чтобы сделать этот вывод (и этот другой график, по мере необходимости) сам по себе.
Кроме того, авторы растратили впустую оси x, y - которые вполне могли бы быть использованы для позиционирования элементов по исходящему и результату, чтобы обеспечить визуальное понимание соотношения цены и качества. Вместо этого они решили заказать иконки по соотношению стоимости на душу населения к средней доле выпускников, что в какой-то мере полезно, но не дает ответа на указанный вопрос, и не позволяет провести прямое визуальное сравнение относительного соотношения между колледжами, или соотношения между стоимостью и стоимостью.
Как я уже сказал, на мой взгляд, это плохой график, и вашим читателям было бы не очень хорошо, если бы вы повторили его.