2014-02-21 15 views
10

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

Data <- structure(list(label = structure(
    c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 
    4L, 5L, 5L, 6L, 6L), .Label = c("A", "B", "C", "D", "E", "F"), class = "factor"), 
    facet = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 
    1L, 2L), .Label = c("A", "B"), class = "factor"), value = c(0.0108889081049711, 
    0.37984336540103, 0.0232500876998529, 0.777756493305787, 
    0.0552913920022547, 0.920194681268185, 0.0370863009011373, 
    0.114463779143989, 0.00536034172400832, 0.469208759721369, 
    0.0412159096915275, 0.587875489378348), group = c(1, 1, 1, 
    1, 1, 1, 1, 1, 1, 1, 1, 1)), .Names = c("label", "facet", 
    "value", "group"), row.names = c(NA, -12L), class = "data.frame") 

ggplot(Data, aes(x = label, y = value, group = group)) + geom_line() + 
    facet_grid(~ facet, scales = "free") + coord_flip() 

Который создает следующий сюжет: enter image description here

Проблема заключается в том, что меры в разных масштабах, и я предпочел бы A участок, чтобы иметь пределы х от 0 до 0,1 и график B имеет пределы x от 0 до 1. Я думал, что scales = "free" должен исправить это, но он не меняет сюжет.

+0

Хороший вопрос, кстати. – BrodieG

ответ

8

я придумал нечто похожее на df239:.

ggplot(Data, aes(y = label, x = value, group=group)) + geom_path() + 
    facet_wrap(~ facet, scales = "free") 

Примечание вы должны использовать geom_path и заботиться с упорядочением ваших точек, так как только переключение x и y не то же самое, как coord_flip (который, как указанный в другом ответе не поддерживается facet_wrap).

enter image description here

+0

Это сработало! Я должен был заказать по ярлыку, чтобы быть уверенным. Благодаря! –

3

Изменения осей ориентации вручную, проблема заключается в: * ggplot2 не поддерживает свободные весы с недекартовым коордом или coord_flip *

ggplot(Data, aes(y = label, x = value, group = group)) + geom_line() + 
facet_grid(~ facet, scales = "free") 
Смежные вопросы