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

  • Canal de arkyoru

    Canal de ark

    18 Ocak 2007
  • funbro1

    funbro1

    11 Aralık 2007
  • IGN

    IGN

    19 EYLÜL 2006