2016-10-05 3 views
0

Я пытаюсь нарисовать сюжет в ggplot (geom_point), и я могу его нарисовать, но я хотел бы манипулировать появлением определенного символа на основе некоторых переменных.rotate and resize symbol ggplot

Я хотел бы повернуть символ (pch = 22) на угол, определяемый рамкой data.frame. Pch = 22 выглядит как прямоугольник. Кроме того, я хотел бы изменить ширину прямоугольника, также в соответствии со значением, определенным в кадре данных.

Вот некоторые примерные данные:

plotdata <- data.frame(x=c(4,6,7,10), 
      y=c(5,6,8,9), angle=c(pi/3, 2*pi/3, pi, pi/6), 
      widthparameter = c(2, 3, 5, 7)) 

В принципе, я хочу, чтобы ширина изменить таким образом, что это соотношение с параметром ширины. Таким образом, в этом примере данные будут меняться пропорционально диапазону 2-7. Например, если ширина может составлять 1 мм для значения «widthparameter» 2, а ширина может составлять 3 мм для значения «widthparameter» 7. Таким образом, «widthparameter» 3 и 5 будет пропорционально где-то между 2 мм и 3 мм.

Я новичок в R, поэтому манипулирование такими символами в ggplot кажется мне невероятно трудной задачей.

Пожалуйста, помогите,

+0

вашего лучший выбор, вероятно, чтобы создать новую геометрию + масштаб. У меня когда-то были те, кто рисовал маленькие правильные многоугольники, но это было много лет назад, и внутренности изменили слишком много, чтобы быть полезными в настоящее время. – baptiste

ответ

0

Есть целый ряд компонентов этой

library(tidyverse) 
ggplot(plotdata, aes(x, y, size=widthparameter))+geom_point() 

будет генерировать график с различными размерами в параметре ширины. Кроме того, вы можете масштабировать по площади - много больше информации здесь http://docs.ggplot2.org/current/scale_size.html

ggplot(plotdata, aes(x, y, size=widthparameter))+geom_point()+scale_size_area() 

На ротационной аспекте, вы будете иметь трудное время - плюс, используя квадрат (pch = 22) и вращая его, ничего не значит, когда каждый на четверть оборота выглядит одинаково ... Может быть, лучше повернуть угол на коэффициент и построить другую форму для каждого уровня фактора - или использовать что-то вроде scale_colour_gradientn(...), чтобы покрасить углы в непрерывном масштабе.

Существуют нагрузки информации для принятия цифры с использованием ggplot2, мой удар в объяснении небольшой части его http://ben-williams.github.io/updated_ggplot_figures.html может быть, это будет полезно, когда вы узнаете R.

+0

Что касается вращательного аспекта, это верно, что поворот квадрата заставит каждую четверть поворота выглядеть одинаково. Это именно то, что мне нужно. –