2015-07-23 3 views
0

Я делаю планку с использованием решетки в R, где у меня есть данные для 4 разных лет на источниках орошения для разных состояний. используя мой код, график штрихов подходит хорошо, но я хочу, чтобы план, соответствующий 1996 году, был нанесен сначала, а затем план, соответствующий 2001 году и т. д., чтобы показать, что растущая площадь орошается лунками. Однако я не могу изменить порядок. Вот мои данные и код R. Большое спасибо за вашу помощь.Как изменить порядок баров в соответствии с групповой переменной в штриховом шкафу с использованием решетки в R?

# sample data 
irr_atlas <- structure(list(state = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("ANDHRA PRADESH", 
"KARNATAKA", "MADHYA PRADESH", "RAJASTHAN"), class = "factor"), 
st_code = c(28L, 28L, 28L, 28L, 28L, 28L, 28L, 28L, 28L, 
28L, 28L, 28L, 28L, 28L, 28L, 28L, 29L, 29L, 29L, 29L, 29L, 
29L, 29L, 29L, 29L, 29L, 29L, 29L, 29L, 29L, 29L, 29L, 23L, 
23L, 23L, 23L, 23L, 23L, 23L, 23L, 23L, 23L, 23L, 23L, 23L, 
23L, 23L, 23L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 
8L, 8L, 8L, 8L, 8L), year = c(1996L, 1996L, 1996L, 1996L, 
2001L, 2001L, 2001L, 2001L, 2006L, 2006L, 2006L, 2006L, 2011L, 
2011L, 2011L, 2011L, 1996L, 1996L, 1996L, 1996L, 2001L, 2001L, 
2001L, 2001L, 2006L, 2006L, 2006L, 2006L, 2011L, 2011L, 2011L, 
2011L, 1996L, 1996L, 1996L, 1996L, 2001L, 2001L, 2001L, 2001L, 
2006L, 2006L, 2006L, 2006L, 2011L, 2011L, 2011L, 2011L, 1996L, 
1996L, 1996L, 1996L, 2001L, 2001L, 2001L, 2001L, 2006L, 2006L, 
2006L, 2006L, 2011L, 2011L, 2011L, 2011L), irr_area = c(1.84066, 
0.942819, 0.82886, 0.853502, 1.54922, 0.825659, 0.542492, 
1.53412, 1.72969, 0.70271, 0.637221, 1.53894, 1.99893, 0.678425, 
0.819829, 1.70708, 0.921594, 0.231669, 0.316999, 0.358529, 
0.91339, 0.207157, 0.426549, 0.481061, 0.921255, 0.18192, 
0.426145, 0.547193, 0.930802, 0.148065, 0.377149, 1.51843, 
1.59425, 0.112145, 2.67683, 0.540054, 1.48056, 0.030502, 
1.63696, 0.563948, 1.12595, 0.058667, 2.46494, 1.15004, 1.10444, 
0.157069, 2.64378, 2.14177, 1.55814, 0.106623, 2.71347, 0.644683, 
1.35746, 0.030586, 2.41845, 0.935234, 1.76933, 0.054374, 
2.46197, 1.76918, 1.62587, 0.050299, 2.14737, 2.82708),irr_source =    structure(c(1L,2L, 4L, 3L, 1L, 2L, 4L, 3L, 1L, 2L, 4L, 3L, 1L, 2L, 4L, 3L, 
1L, 2L, 4L, 3L, 1L, 2L, 4L, 3L, 1L, 2L, 4L, 3L, 1L, 2L, 4L, 
3L, 1L, 2L, 4L, 3L, 1L, 2L, 4L, 3L, 1L, 2L, 4L, 3L, 1L, 2L, 
4L, 3L, 1L, 2L, 4L, 3L, 1L, 2L, 4L, 3L, 1L, 2L, 4L, 3L, 1L, 
2L, 4L, 3L), .Label = c("Canal", "Tank", "Tube", "Well"), class = "factor")), .Names = c("state","st_code", "year", "irr_area", "irr_source"), class = "data.frame", row.names = c(NA, -64L))  

Код для участка ...

library(lattice) 
barchart(~irr_area | factor(state) + factor(irr_source), 
    group=year, data=irr_atlas, auto.key=list(space="right")) 
+0

Вы попробовали что-нибудь? Несмотря на то, что этот вопрос касался ggplot, ответ на упорядочение ваших факторов также работает на решетке: http://stackoverflow.com/questions/20041136/how-to-avoid-ggplot-sorting-the-x-axis-while- черчения-геый-бар. Какой заказ они печатают для вас сейчас? Пример данных и кода, похоже, уже в правильном порядке. – MrFlick

+0

Да, я попробовал использовать команду повторного заказа и т. Д. Но план на 2011 год был нанесен на первый план горизонтально, я хочу, чтобы план, соответствующий 1996 году, был нанесен первым. – Ridhima

ответ

1

Как упоминалось выше, упорядочение групп в R графики, как правило, определяется порядком переменной фактора. Таким образом, вы можете изменить порядок своих факторов на factor и его аргумент levels.

library(lattice) 
barchart(~irr_area | factor(state) + factor(irr_source), 
     group=factor(year, levels=sort(unique(year), decreasing=T)), # change the order of years 
     data=irr_atlas, auto.key=list(space="right")) 

Вы можете переключить его обратно в другую сторону, изменив decreasing=F.

+0

Не могли бы вы рассказать мне, как добавлять ярлыки, соответствующие каждому году, чтобы они отображались рядом с панелью? – Ridhima

Смежные вопросы