本文详细介绍ggplot2中图例标度(legends scales),续前篇

  • R可视化07|ggplot2图层-标度图层(scale layer)-颜色盘篇

本文目录

4、图例标度(legends scale)
图例位置设置
修改ggplot2的图例符号
ggplot2的图例顺序|方向等花里胡哨设置


4、图例标度(legends scale)

  • 图例位置设置

图例位置通过theme中的legend.position设置,有参数“right”, “left”, “top”, “bottom”, or “none” (不显示图例)可选。

toy <- data.frame(const = 1, up = 1:4,txt = letters[1:4], big = (1:4)*1000,log = c(2, 5, 10, 2000)
)base <- ggplot(toy, aes(up, up)) + geom_point(aes(colour = txt), size = 3) + xlab(NULL) + ylab(NULL)#legend.position控制图例上下左右位置
p1 <- base + theme(legend.position = "left")
p2 <- base + theme(legend.position = "right") # 默认图例在左边
p3 <- base + theme(legend.position = "bottom")
p4 <- base + theme(legend.position = "none")#不显示图例#legend.position和legend.justification设置图例占比图形比例控制图例位置
base <- ggplot(toy, aes(up, up)) + geom_point(aes(colour = txt), size = 3)
p5 <- base
p6 <- base + theme(legend.position = c(0, 1), legend.justification = c(0, 1))
p7 <- base + theme(legend.position = c(0.5, 0.5), legend.justification = c(0.5, 0.5))
p8 <- base + theme(legend.position = c(1, 0), legend.justification = c(1, 0))
p9 <- grid.arrange(p1,p2,p3,p4,p5,p6,p7,p8,nrow = 4)ggsave("scale8.png", p9, width = 8, height = 10)

  • 修改ggplot2的图例符号draw_key_*函数指定图例符号,注意右侧图例符号变化。
options(repr.plot.width = 10, repr.plot.height = 12, repr.plot.res = 300)
p1 <- ggplot(economics_long, aes(date, value01, colour = variable)) +geom_line()#draw_key_timeseries指定图例符号为时间序列
p2 <- ggplot(economics_long, aes(date, value01, colour = variable)) +geom_line(key_glyph = draw_key_timeseries)#自定义图例符号为笑脸
library(grid)
library(rlang)
draw_key_smile <- function(data, params, size) {grobTree(pointsGrob(0.25, 0.75, size = unit(.25, "npc"), pch = 16),pointsGrob(0.75, 0.75, size = unit(.25, "npc"), pch = 16),linesGrob(c(0.9, 0.87, 0.78, 0.65, 0.5, 0.35, 0.22, 0.13, 0.1), c(0.5, 0.35, 0.22, 0.13, 0.1, 0.13, 0.22, 0.35, 0.5)),gp = gpar(col = data$colour %||% "grey20",fill = alpha(data$fill %||% "white", data$alpha),lwd = (data$size %||% 0.5) * .pt,lty = data$linetype %||% 1))
}p3 <- ggplot(economics_long, aes(date, value01, colour = variable)) +geom_line(key_glyph = draw_key_smile)
p4 <- grid.arrange(p1,p2,p3,nrow = 3)ggsave("scale9.png", p4, width = 10, height = 12)

其它draw_key_*图例符号

  • ggplot2的图例顺序|方向等花里胡哨设置

这部分详细介绍图例各种个性化设置,看图找代码即可。

options(repr.plot.width = 5, repr.plot.height = 15, repr.plot.res = 300)
base <- ggplot(mpg, aes(drv, fill = factor(cyl))) + geom_bar() p1 <- base#ncol byrow设置图例排列顺序
p2 <- base + guides(fill = guide_legend(ncol = 2))
p3 <- base + guides(fill = guide_legend(ncol = 2, byrow = TRUE))#reverse颠倒图例顺序
p4 <- base + guides(fill = guide_legend(reverse = TRUE))#override.aes:覆盖从每个图层派生的一些图形属性设置
base1 <- ggplot(mpg, aes(displ, hwy, colour = drv)) +geom_point(size = 4, alpha = .2, stroke = 0)p5 <- base1 + guides(colour = guide_legend())
p6 <- base1 + guides(colour = guide_legend(override.aes = list(alpha = 1)))#axis图例处坐标轴控制
base2 <- ggplot(mpg, aes(displ, manufacturer, size = hwy)) +geom_point(alpha = .2) +scale_size_binned()p7 <- base2
p8 <- base2 + guides(size = guide_bins(axis = FALSE))#direction设置图例方向
p9 <- base2 + guides(size = guide_bins(direction = "vertical"))
p10 <- base2 + guides(size = guide_bins(direction = "horizontal"))#show.limits,axis.colour, axis.linewidth和axis.arrow控制图例处axis属性base3 <- ggplot(mpg, aes(cyl, displ, colour = hwy)) +geom_point(size = 2)#guide_colourbar() / guide_colorbar()控制colourbar型图例
p13 <- base3
p14 <- base3 + guides(colour = guide_colourbar(reverse = TRUE))#设置colourbar高度2cm
p15 <- base3 + guides(colour = guide_colourbar(barheight = unit(2, "cm")))#guide_coloursteps() / guide_colorsteps()控制刻度显示形式
base4 <- ggplot(mpg, aes(displ, hwy, colour = cyl)) + geom_point() + scale_color_binned()p16 <- base4
p17 <- base4 + guides(colour = guide_coloursteps(show.limits = TRUE))#colourbar首尾显示
p18 <- base4 + guides(colour = guide_coloursteps(show.limits = FALSE))p19 <- grid.arrange(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p13,p14,p15,p16,p17,p18,nrow = 8)
ggsave("scale10.png", p19, width = 5, height = 15)


本文结束,更多好文,欢迎关注:pythonic生物人

  • Python可视化|Matplotlib39-Matplotlib 1.4W+字教程(珍藏版)
  • Python可视化|Matplotlib&Seaborn36(完结篇)
  • python3基础12详解模块和包(库)|构建|使用
  • Perl基础系列合集
  • NGS各种组学建库原理(图解)

图例符号居中显示_R可视化08|ggplot2图层-标度图层(scale layer)-图例篇相关推荐

  1. ggplot2中显示坐标轴_R可视化08|ggplot2图层标度图层(scale layer)图例篇

    "pythonic生物人"的第106篇分享 本文详细介绍ggplot2中图例标度(legends scales),续前篇 R可视化07|ggplot2图层-标度图层(scale l ...

  2. ggplot2设置坐标轴范围_R可视化03|ggplot2图层-几何对象图层(geom layer)

    前面简单介绍ggplot2是基于图层图形语法(the Grammar of Graphics),一张完整图由不同图层叠加而成,本文介绍几何对象图层(geom layer),续前篇: R可视化01|gg ...

  3. R可视化07|ggplot2图层-标度图层(scale layer)-颜色盘篇

    本文详细介绍ggplot2中颜色标度(Colour scales and legends),续前篇. 本文目录 3.颜色标度和图例(Colour scales and legends) ggplot2 ...

  4. ggplot2中显示坐标轴_R可视化11|ggplot2-图层图形语法 (3)

    本文系统介绍ggplot2的统计变换(stat).位置设置(Position adjustments)和标度(scale). 本文目录 6.统计变换(stat)stats can be created ...

  5. R语言ggplot2可视化将图像标题(title)居中显示实战

    R语言ggplot2可视化将图像标题(title)居中显示实战 目录 R语言ggplot2可视化将图像标题(title)居中显示实战

  6. R语言ggplot2可视化:ggplot2可视化水平堆叠条形图、并且在每个堆叠条形图的内部居中添加百分比文本标签信息

    R语言ggplot2可视化:ggplot2可视化水平堆叠条形图.并且在每个堆叠条形图的内部居中添加百分比文本标签信息 目录

  7. R语言可视化包ggplot2改变图例(legend)的标题(title)实战

    R语言可视化包ggplot2改变图例(legend)的标题(title)实战 目录 R语言可视化包ggplot2改变图例(legend)的标题(title)实战

  8. R语言ggplot2可视化:ggplot2可视化密度图(显示数据密集区域)、ggplot2可视化密度图(对数坐标):log10比例的收入密度图突出了在常规密度图中很难看到的收入分布细节

    R语言ggplot2可视化:ggplot2可视化密度图(显示数据密集区域).ggplot2可视化密度图(对数坐标):log10比例的收入密度图突出了在常规密度图中很难看到的收入分布细节 目录

  9. R语言ggplot2可视化在ggplot2生成的可视化结果下方显示文本:显示一些关于数据的信息

    R语言ggplot2可视化在ggplot2生成的可视化结果下方显示文本:显示一些关于数据的信息 目录

最新文章

  1. java 品尝饮料_那些年我喝过的饮料
  2. [转] Java快速教程
  3. 在C#里怎样获得当前Windows操作系统的语言种类?以及如何知道当前Windows版本?...
  4. MAT之DT:DT实现根据乳腺肿瘤特征向量高精度预测肿瘤的是恶性还是良性
  5. echarts label加边框_玩转ECharts之实现“动态颜色的Label”
  6. redis api-hash
  7. Servlet 表单数据
  8. 如何正确使用Node.js中的事件
  9. centos7 hadoop3.0.1安装
  10. 三十一、K8s供应链安全2 - 镜像的检测及优化与yaml文件安全
  11. JS弹出框插件zDialog再次封装
  12. C++语法(五)数据类型
  13. HTTP代理服务器的实现
  14. mac android studio Waiting for application to come online解决方案
  15. HDFS物理块存储大小
  16. 32款实用网页开发人员必备的谷歌浏览器扩展
  17. Html+CSS浮动的广告条
  18. mixin 和 mixins 区别 ?
  19. 多模、AI 齐上阵,Deepfake 换脸术克星驾到!
  20. VoIP系统故障排除:7个常见问题处理方法

热门文章

  1. 两大开源游戏引擎Cocos2d-x及OGEngine对比分析
  2. [NOIP1999] 普及组
  3. 积跬步,聚小流-------一个登录中的知识点
  4. Android 自定义Button按钮显示样式(正常、按下、获取焦点)
  5. Windows Socket五种I/O模型
  6. memcache和memcached的区别
  7. MVC Razor 语法(转)
  8. [Asp.Net]自己的一个SqlHelper类
  9. EF中 GroupJoin 与 Join
  10. [转]asp.net权限认证:摘要认证(digest authentication)