SORU
5 Temmuz 2012, PERŞEMBE


Nasıl ggplot2 özellikleri için genel bir etiket eklemek musunuz?

Ben sık sık yüzeylerinin için sayısal değerler var. Ek bir başlık bu yüzeylerinin değerleri, eksen başlıkları benzer yorumlamak için yeterli bilgi vermek istiyorum. Etiket makinesi seçenekleri tekrar gereksiz metin çok uzun ve değişken başlıkları için kullanılamaz.

Herhangi bir öneriniz var mı?

Varsayılan:

test<-data.frame(x=1:20, y=21:40, facet.a=rep(c(1,2),10), facet.b=rep(c(1,2), each=20))
qplot(data=test, x=x, y=y, facets=facet.b~facet.a)

enter image description here

Seviyorum ne olurdu:

enter image description here

En iyi ggplot yapabileceğim:

qplot(data=test, x=x, y=y) facet_grid(facet.b~facet.a, labeller=label_both)

enter image description here

@Hendy, benzer:gösterildiği gibi add a secondary y axis to ggplot2 plots - make it perfect

CEVAP
30 EYLÜL 2012, Pazar


5 ** en içten gtable kullanır gibi, oldukça kolay bir şekil değiştirmek için:

test<-data.frame(x=1:20, y=21:40, facet.a=rep(c(1,2),10), facet.b=rep(c(1,2), each=20))
p <- qplot(data=test, x=x, y=y, facets=facet.b~facet.a)

# get gtable object
z <- ggplot_gtable(ggplot_build(p))

# add label for right strip
z <- gtable_add_cols(z, z$widths[[7]])
z <- gtable_add_grob(z, 
  list(rectGrob(gp = gpar(col = NA, fill = gray(0.5))),
  textGrob("Variable 1", rot = -90, gp = gpar(col = gray(1)))),
  4, 8, 6, name = paste(runif(2)))

# add label for top strip
z <- gtable_add_rows(z, z$heights[[3]], 2)
z <- gtable_add_grob(z, 
  list(rectGrob(gp = gpar(col = NA, fill = gray(0.5))),
  textGrob("Variable 2", gp = gpar(col = gray(1)))),
  3, 4, 3, 6, name = paste(runif(2)))

# add margins
z <- gtable_add_cols(z, unit(1/8, "line"), 7)
z <- gtable_add_rows(z, unit(1/8, "line"), 3)

# draw it
grid.newpage()
grid.draw(z)

enter image description here

Tabii ki, otomatik olarak şerit etiketler katan bir işlev yazabilirsiniz. ggplot2 sonraki sürümü bu işlev, ama emin değilim olabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andrea Lewis

    Andrea Lewis

    14 Mart 2013
  • Art Food Kitty - Kelly Eddington

    Art Food Kit

    7 Kasım 2006
  • Rachel Talbott

    Rachel Talbo

    26 Ocak 2011