经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » R语言 » 查看文章
R语言grid包just参数如何just图形位置
来源:cnblogs  作者:ywliao  时间:2018/9/25 20:19:43  对本文有异议

思路

??grid的画图函数都含有just,但是just参数的是怎么调节图形位置的总是让人非常费解,于是便写了代码来一探究竟。
??思路非常简单:放一个2*2的布局viewport,每个布局里面放一个viewport,每个viewport都用了不同的just参数。just之后的矩形用蓝色显示,中心点的移动用箭头表示出来, 这样每个参数对应图形怎么移动的都能一目了然。从以下的代码也能学到如何安排布局, 如何使用grobX和grobY获得grob对象的坐标, 如何进行基本的viewport切换等。

代码

  1. library(grid)
  2. grid.newpage() # new page
  3. pushViewport(viewport(layout = grid.layout(2,2))) # 2 *2 layout
  4. # just top
  5. pushViewport(viewport(layout.pos.col = 1, layout.pos.row = 1))
  6. grid.rect()
  7. r1 <- rectGrob(0.5, 0.5, width = 0.2, height = 0.2, name = "r1")
  8. r2 <- rectGrob(0.5, 0.5, width = 0.2, height = 0.2, just = c("top"),gp=gpar(col="blue"), name = "r2")
  9. grid.draw(r1)
  10. grid.draw(r2)
  11. grid.segments(0.5,0.5,grobX(r2, 90), grobY(r2, 0), arrow=arrow(angle=15, type="closed"), gp=gpar(fill="black"))
  12. grid.text("just: top" ,0.6, 0.8)
  13. upViewport()
  14. # just left and top
  15. pushViewport(viewport(layout.pos.col = 1, layout.pos.row = 2))
  16. grid.rect()
  17. r1 <- rectGrob(0.5, 0.5, width = 0.2, height = 0.2, name="r1")
  18. r2 <- rectGrob(0.5, 0.5, width = 0.2, height = 0.2, just = c("left", "top"), gp=gpar(col="blue"), name="r2")
  19. grid.draw(r1)
  20. grid.draw(r2)
  21. grid.segments(0.5, 0.5, grobX(r2, 90), grobY(r2, 0), arrow=arrow(angle=15, type="closed",), gp=gpar(fill="black"))
  22. grid.text("just: left and top", 0.6, 0.8)
  23. upViewport()
  24. # just left and bottom
  25. pushViewport(viewport(layout.pos.col = 2, layout.pos.row = 1))
  26. grid.rect()
  27. r1 <- rectGrob(0.5, 0.5, width = 0.2, height = 0.2, name="r1")
  28. r2 <- rectGrob(0.5, 0.5, width = 0.2, height = 0.2, just = c("left", "bottom"), gp=gpar(col="blue"), name="r2")
  29. grid.draw(r1)
  30. grid.draw(r2)
  31. grid.segments(0.5, 0.5,grobX(r2, 90), grobY(r2, 0), arrow=arrow(angle=15, type="closed",), gp=gpar(fill="black"))
  32. grid.text("just: left and bottom", 0.6, 0.8)
  33. upViewport()
  34. # just right bottom
  35. pushViewport(viewport(layout.pos.col = 2, layout.pos.row = 2))
  36. grid.rect()
  37. r1 <- rectGrob(0.5, 0.5, width = 0.2, height = 0.2, name="r1")
  38. r2 <- rectGrob(0.5, 0.5, width = 0.2, height = 0.2, just = c("right", "bottom"), gp=gpar(col="blue"), name = "r2")
  39. grid.draw(r1)
  40. grid.draw(r2)
  41. grid.segments(0.5,0.5,grobX(r2, 90), grobY(r2, 0), arrow=arrow(angle=15, type="closed",), gp=gpar(fill="black"))
  42. grid.text("just: right and bottom", 0.6, 0.8)
  43. upViewport()

结果

结论

  • just参数对图形进行相反的调节,比如想向上调节图形,就得调节just="bottom",也可以理解为真实位置相对于画图位置,比如真实位置要比画图位置要低,就用just="bottom“
  • grobX角度为90时, grobY 角度为0时,可获得图形的中心位置, grobX 为0时X位置在图形的最右, grobY 为0时Y位置在图形的中间
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号