Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >杂记:ggpairs更改配色;ggplot2极坐标添加直线;seqkit计算fasta序列的长度和gc含量

杂记:ggpairs更改配色;ggplot2极坐标添加直线;seqkit计算fasta序列的长度和gc含量

作者头像
用户7010445
发布于 2021-07-12 07:51:44
发布于 2021-07-12 07:51:44
1.9K00
代码可运行
举报
运行总次数:0
代码可运行
计算gc含量
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
seqkit.exe fx2tab --name --only-id --gc output.fasta -o gc.txt

image.png

计算序列长度
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
seqkit.exe fx2tab --name --only-id -l output.fasta -o seqlen.txt

image.png

ggpairs更改配色

这个只是一种方案,还有好多问题没有解决,比如如何给下三角和上三角赋予不同的颜色

代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(GGally)
ggpairs(iris,columns = 1:4,
        lower = list(continuous="points",
                     mapping=aes(color=Species)),
        diag = list(continuous="densityDiag",
                    mapping=aes(fill=Species)),
        upper = list(continuous="cor",
                     mapping=aes(colour=Species)))+
  scale_color_manual(values=c("red","blue","green"))+
  scale_fill_manual(values = c("orange","yellow","purple"))+
  theme_bw()

image.png

ggplot2 作图 极坐标情况下添加直线

自己没有想法如何实现,搜索引擎搜索关键词 ggplot2 polar and then add straight lines找到参考链接

https://stackoverflow.com/questions/66196451/draw-straight-line-between-any-two-point-when-using-coord-polar-in-ggplot2-r

代码暂时还看不明白,他是自己重新定义了一个函数,代码我先复制过来,后面有时间来研究

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(tidyverse)
library(ggplot2)
df <- tibble(x = rep(letters,  each = 5),
             y = rep(1:5, 26),
             d =  rnorm(26 * 5))


p1 <- ggplot() +
  geom_tile(data = df,
            aes(x = x,
                y = y,
                fill = d)) +
  ylim(c(-2, 5)) +
  geom_segment(
    aes(
      x = "o",
      y = -1,
      xend = "z",
      yend = 3
    ),
    arrow = arrow(length = unit(0.2, "cm")),
    col = "red",
    size = 2
  ) 
p1

image.png

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p1 + coord_polar()

image.png

自定义函数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
geom_segment_straight <- function(...) {
  layer <- geom_segment(...)
  new_layer <- ggproto(NULL, layer)
  old_geom <- new_layer$geom
  geom <- ggproto(
    NULL, old_geom,
    draw_panel = function(data, panel_params, coord, 
                          arrow = NULL, arrow.fill = NULL,
                          lineend = "butt", linejoin = "round",
                          na.rm = FALSE) {
      data <- ggplot2:::remove_missing(
        data, na.rm = na.rm, c("x", "y", "xend", "yend", 
                               "linetype", "size", "shape")
      )
      if (ggplot2:::empty(data)) {
        return(zeroGrob())
      }
      coords <- coord$transform(data, panel_params)
      # xend and yend need to be transformed separately, as coord doesn't understand
      ends <- transform(data, x = xend, y = yend)
      ends <- coord$transform(ends, panel_params)
      
      arrow.fill <- if (!is.null(arrow.fill)) arrow.fill else coords$colour
      return(grid::segmentsGrob(
        coords$x, coords$y, ends$x, ends$y,
        default.units = "native", gp = grid::gpar(
          col = alpha(coords$colour, coords$alpha),
          fill = alpha(arrow.fill, coords$alpha),
          lwd = coords$size * .pt,
          lty = coords$linetype,
          lineend = lineend,
          linejoin = linejoin
        ),
        arrow = arrow
      ))
      
    }
  )
  new_layer$geom <- geom
  return(new_layer)
}

画图代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ggplot() +
  geom_tile(data = df,
            aes(x = x,
                y = y,
                fill = d)) +
  ylim(c(-2, 5)) +
  geom_segment_straight(
    aes(
      x = "o",
      y = -1,
      xend = "z",
      yend = 3
    ),
    arrow = arrow(length = unit(0.2, "cm")),
    col = "red",
    size = 2
  ) + 
  coord_polar()

image.png

曲线也是可以的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
geom_curve_polar <- function(...) {
  layer <- geom_curve(...)
  new_layer <- ggproto(NULL, layer)
  old_geom <- new_layer$geom
  geom <- ggproto(
    NULL, old_geom,
    draw_panel = function(data, panel_params, coord, 
                          curvature = 0.5, angle = 90, ncp = 5,
                          arrow = NULL, arrow.fill = NULL,
                          lineend = "butt", linejoin = "round",
                          na.rm = FALSE) {
      data <- ggplot2:::remove_missing(
        data, na.rm = na.rm, c("x", "y", "xend", "yend", 
                               "linetype", "size", "shape")
      )
      if (ggplot2:::empty(data)) {
        return(zeroGrob())
      }
      coords <- coord$transform(data, panel_params)
      ends <- transform(data, x = xend, y = yend)
      ends <- coord$transform(ends, panel_params)
      
      arrow.fill <- if (!is.null(arrow.fill)) arrow.fill else coords$colour
      return(grid::curveGrob(
        coords$x, coords$y, ends$x, ends$y,
        default.units = "native", gp = grid::gpar(
          col = alpha(coords$colour, coords$alpha),
          fill = alpha(arrow.fill, coords$alpha),
          lwd = coords$size * .pt,
          lty = coords$linetype,
          lineend = lineend,
          linejoin = linejoin
        ),
        curvature = curvature, angle = angle, ncp = ncp,
        square = FALSE, squareShape = 1, inflect = FALSE, open = TRUE,
        arrow = arrow
      ))
      
    }
  )
  new_layer$geom <- geom
  return(new_layer)
}

ggplot() +
  geom_tile(data = df,
            aes(x = x,
                y = y,
                fill = d)) +
  ylim(c(-2, 5)) +
  geom_curve_polar(
    aes(
      x = "o",
      y = -1,
      xend = "z",
      yend = 3
    ),
    arrow = arrow(length = unit(0.2, "cm")),
    col = "red",
    size = 2
  ) + 
  coord_polar()

image.png

欢迎大家关注我的公众号

小明的数据分析笔记本

小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小明的数据分析笔记本 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
R tips: ggplot图层编写
在实际使用中,ggplot中使用的图层是以geom或者stat开头的函数创建的,但是如果查看一下这些图层函数的具体内容可以发现他们都是在封装一个layer函数。
生信菜鸟团
2023/09/08
3700
R tips: ggplot图层编写
ggplot2都有哪些使用不多但是却异常强大的图层函数
要说ggplot2中那些使用不多但是却功能强大的图层函数,我首先想到的就是geom_rect、geom_linerange、geom_segment、geom_ploygon。
数据小磨坊
2018/07/25
1.9K0
ggplot2都有哪些使用不多但是却异常强大的图层函数
🤒 geomtextpath | 成功让你的ggplot注释拥有傲人曲线!~
1写在前面 最近的世界杯结果的确是让人大跌眼镜🕶️, 日本队🇯🇵先后击败世界杯冠军, 德国队🇩🇪和西班牙队🇪🇸, 韩国队🇰🇷逆转葡萄牙🇵🇹, 踩着乌拉圭🇺🇾进入淘汰赛(请韩国队🇰🇷自觉感谢裁判), 让无数人站上天台😂. 不过大家要是看看这几十年日本足球⚽️的发展也就不会觉得奇怪了, 就算有一天日本队将梦想照进现实,捧起大力神杯🏆, 我也不觉得有什么奇怪的. 还是祝各亚洲球队取得好成绩, 也祝梅西和C罗在顶峰相遇, 人生不留遗憾😘. ---- 接着是这一期的教程, 最近用了一下geomtextpath, 是个
生信漫卷
2023/02/24
4070
🤒 geomtextpath | 成功让你的ggplot注释拥有傲人曲线!~
106-R可视化30-底层绘图系统grid学习之重头创建ggplot对象之一
虽然ggplot2 和它的朋友们[[xx-R可视化30-ggplot又一拓展包之ggforce]], [[xx-R可视化xx-用ggalt体验ggplot新版DLC(拓展)]] 给我们提供了大量绘图的选项。比如通过操纵 geom_** 和stat_** 函数。
北野茶缸子
2022/04/05
8680
106-R可视化30-底层绘图系统grid学习之重头创建ggplot对象之一
ggplot2|详解八大基本绘图要素
ggplot2是由Hadley Wickham创建的一个十分强大的可视化R包。按照ggplot2的绘图理念,Plot(图)= data(数据集)+ Aesthetics(美学映射)+ Geometry(几何对象)。本文将从ggplot2的八大基本要素逐步介绍这个强大的R可视化包。
生信补给站
2020/08/05
7.5K0
ggplot2|详解八大基本绘图要素
ggplot2绘制logo版环状条形图
R语言数据分析指南
2023/09/11
4020
ggplot2绘制logo版环状条形图
R语言ggplot2画漂亮的环形柱形图的一个实例
代码来源的链接是 https://github.com/NearAndDistant/data_science_with_r
用户7010445
2022/02/21
1.3K0
R语言ggplot2画漂亮的环形柱形图的一个实例
ggplot2优雅绘制环状华夫图
❝本节来介绍如何只使用「geom_segment」函数来绘制环状华夫图,这个名称也许更符合示例图表,「数据代码已经上传VIP群,请自行下载」 ❞ 加载R包 library(tidyverse) library(ggtext) 导入数据 df <- read_tsv("data.xls") %>% mutate(count =as.factor(EDA_count)) labels <- tibble(x = 0,y = 1:5, text = c("A", "B","C","D","E")) 数
R语言数据分析指南
2022/09/23
3260
ggplot2优雅绘制环状华夫图
跟着Nature学作图:R语言ggplot2环形堆积柱形图完整示例
https://www.nature.com/articles/s41586-022-04664-7#Sec33
用户7010445
2023/01/06
3.2K0
跟着Nature学作图:R语言ggplot2环形堆积柱形图完整示例
ggplot2优雅的自定义轴文本颜色
❝今天来主要介绍如何在不引入外部几何对象的前提下在图形的原有的基础上「自定义修改轴文本颜色」,也许恰好您正好有此特殊需求,希望对各位观众老爷有所帮助;下面来看具体案例; ❞ 加载R包 library(tidyverse) 数据清洗 data1 <- mtcars %>% head(6) %>% mutate_if(is.numeric, function(x) x+10) %>% log10() %>% as.data.frame() %>% rownames_to_column("ty
R语言数据分析指南
2022/09/21
1.5K0
ggplot2优雅的自定义轴文本颜色
R语言ggplot2每周一图活动第五周:箱线图、小提琴图
在之前提到的tidytuesday里没有找到关于箱线图和小提琴图比较好的实例,这周的ggplot2每周一图活动用之前推文中的内容作为实例进行讲解,之前的推文是跟着Nature学作图:R语言ggplot2箱线图、小提琴图、抖动散点图
用户7010445
2022/05/23
6970
R语言ggplot2每周一图活动第五周:箱线图、小提琴图
跟着Nature学作图:R语言ggplot2箱线图、小提琴图、抖动散点图
https://github.com/GRONINGEN-MICROBIOME-CENTRE/DMP
用户7010445
2022/05/23
5.8K0
跟着Nature学作图:R语言ggplot2箱线图、小提琴图、抖动散点图
用ggplot2画了一个我也叫不上名的炫酷图表
今日心血来潮,看到一幅制作精良的图表,就想使用ggplot2代码实现,虽然不知道该怎么称呼这个图表,但是能顺利做出来也是很有成就感的! 加载数据包 library("ggplot2") library("grid") library("showtext") library("Cairo") font.add("myfont","msyh.ttc") 构造图形数据源 mydata<-data.frame( id=1:13, class=rep_len(1:4, length=13), Label=c("Eve
数据小磨坊
2018/04/11
1K0
用ggplot2画了一个我也叫不上名的炫酷图表
R语言ggplot2漂亮的热图和配色简单小例子
偶然间在github 上发现的这个链接,示例数据和代码都有,很好的R语言学习素材 链接是 https://github.com/blmoore/blogR ,主要内容有 image.png 光看这个可
用户7010445
2021/04/21
8.4K0
R语言ggplot2漂亮的热图和配色简单小例子
ggplot2修改坐标轴详细介绍
ggplot2的每个细节都是可以修改的,非常推荐大家系统学习一下,用到再学确实是一种不错的方式,但是如果要提高进阶,还是有必要系统学习的。
医学和生信笔记
2022/11/15
12.2K0
ggplot2修改坐标轴详细介绍
108-R可视化32-通过seurat包中的LabelClusters学习ggplot之一
在先前的内容里:[[66-R可视化10-自由的在ggplot上添加文本(柱状图加计数)]],我们提到过添加文本的方法。但是,对于散点图来说,我们需要找到的是一个坐标,而这个坐标,最好可以反映位置散点的中心或附近区域,对这个坐标进行标识。
北野茶缸子
2022/04/05
1.1K0
108-R可视化32-通过seurat包中的LabelClusters学习ggplot之一
(数据科学学习手札38)ggplot2基本图形简述
  上一篇中我们介绍了ggplot2的基本语法规则,为了生成各种复杂的叠加图层,需要了解ggplot2中一些基本的几何图形的构造规则,本文便就常见的基础几何图形进行说明;
Feffery
2018/05/30
5.5K10
医信融合创新沙龙投稿-圆形柱状图(富集圈图)
我们使用df <- df[-which(df$fraction < 0.03),]去掉部分或用AI处理.
叶子Tenney
2023/03/07
6890
医信融合创新沙龙投稿-圆形柱状图(富集圈图)
高阶可视化绘图系统:ggplot2入门
ggplot2是《The Grammar of Graphics》/《图形的语法》中提出了一套图形语法,将图形元素抽象成可以自由组合的要素,类似Photoshop中的图层累加,ggplot2将指定的元素/映射关系逐层叠加,最终形成所图形。更加深入学习ggplot2,请参考《ggplot2: 数据分析与图形艺术》。
1480
2019/07/22
1.8K0
高阶可视化绘图系统:ggplot2入门
是Excel的图,不!是R的图
excel作为一个强大的统计工具,自身包含着一部分数据可视化的功能。R作为可视化的大势,自然也可以画出这些图,有一篇就通过ggplot2包进行了部分总结,甚是有趣,小编复刻学习了一番,现对代码做简单注释,以作分享。
生信宝典
2019/08/01
4.3K0
是Excel的图,不!是R的图
推荐阅读
相关推荐
R tips: ggplot图层编写
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验