如何在ggplot2中使用ylab()创建动态轴标签?

奇妙的树

我正在ggplot2中制作一系列绘图,每列数据一个,我希望能够对其进行编码,以便Y轴标签动态更改为绘图变量的名称(以及其中的一些其他常量信息)标签)。

我的资料来自dput()

df <- structure(list(day = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L), .Label = c("5-Aug", "10-Aug", "17-Aug"), class = "factor"), 
station = c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L
), Bug = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 
1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 1L, 1L, 1L, 2L, 2L, 2L, 
3L, 3L, 3L), .Label = c("Copepod", "Copepod nauplii", "Harpactioid copepods"
), class = "factor"), Mean = c(382.4048896, 1017.171389, 
1519.141298, 233.3753491, 167.1086422, 530.7227507, 20.55943305, 
482.9992303, 10.49548997, 698.0193699, 5398.533995, 2458.635058, 
36.90431458, 124.4956045, 20.8459728, 8.414735929, 4014.649407, 
7.279486288, 346.1246378, 5722.82018, 6253.357325, 427.6856315, 
1768.984975, 1486.635443, 4.825526305, 46.50462845, 1.07692853
), StErr = c(83.18963396, 100.9187504, 73.45417607, 88.08491141, 
44.57580452, 44.03459391, 4.663586058, 112.4238952, 2.551982788, 
284.3933876, 3417.741042, 689.5558519, 9.798626545, 49.16103906, 
4.268815029, 3.76465482, 1803.977156, 1.328408258, 53.67873047, 
1796.827256, 732.573507, 86.56594682, 198.7842421, 229.0132055, 
1.129940095, 16.48065742, 0.283417726)), .Names = c("day", 
"station", "Bug", "Mean", "StErr"), row.names = c(NA, -27L), class = "data.frame")

我正在使用以下代码自动创建并保存一个动态命名的新.pdf文件:

library(ggplot2)
df$day<-factor(df$day, levels = c("5-Aug","10-Aug","17-Aug")) #corrects day order

allplots <- ggplot(data=df, aes(x=station, y=Mean)) + 
    geom_errorbar(aes(ymin=(Mean-StErr), ymax=(Mean+StErr)), colour="black", width=0.1)+
    geom_point(size=2) + 
    xlab(NULL) +
    ylab(expression(paste('Copepods,'~'#/m'^3))) +
    theme_bw() +
    theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank()
    ) + 
    scale_x_continuous(expand=c(.3,0), breaks=c(1:3), labels=c("In", "FL", "Off")) +
    annotation_logticks(sides = "l") + 
    scale_y_log10() +
    theme(axis.text.x=element_text(size=12)) +
    theme(axis.text.y=element_text(size=12)) +
    facet_grid(Bug ~ day)

plotfun <- function(x,y) {
    a <- ggplot(data=x, aes(x=station, y=Mean)) +
        geom_errorbar(aes(ymin=(Mean-StErr), ymax=(Mean+StErr)), colour="black", width=0.1)+
        geom_point(size=2) + 
        xlab(NULL) +
        ylab(expression(paste('Copepods,'~'#/m'^3))) + #I'd like Copepods to change with variable that is being plotted
        theme_bw() +
        theme(
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank()
        ) + 
        scale_x_continuous(expand=c(.3,0), breaks=c(1:3), labels=c("In", "FL", "Off")) +
        annotation_logticks(sides = "l") + 
        scale_y_log10() +           
        theme(axis.text.x=element_text(size=12)) +
        theme(axis.text.y=element_text(size=12)) +              
        facet_grid(.~day)
 pdf(file=paste(y,'pdf',sep="."))
 print(a)
 dev.off()  
     }

mapply(plotfun, split(df, df$Bug), levels(df$Bug)) 

我尝试paste(levels(df$Bug))在ylab()中使用,但无法正常工作。我不确定还可以尝试什么,并希望有人能够提出一些我可以研究的建议。我希望每个Y轴VariableName使用从Bug级别(即Copepod,Copepod无节幼体和Harpacticoid pe足类)中获取的VariableName读取“ per m ^ 3”。有谁知道如何做到这一点?如果我可以使用它的话,这看起来真的很酷,也很有用!感谢您的任何建议。

财务管理师

我想我可以ylab为地块的标签提供帮助,这似乎是您问题的核心。这产生了三个图,但是我遇到了各种ggplot错误(一点也不了解),这要求我拿出一堆与主题和比例有关的代码。后来我以不同的顺序将其放回去,这似乎使ggplot机械满意。

plotfun <- function(x,y) {
    a <- ggplot(data=x, aes(x=station, y=Mean)) +
        geom_errorbar(aes(ymin=(Mean-StErr), ymax=(Mean+StErr)), 
                      colour="black", width=0.1)+
        geom_point(size=2) + 
        xlab(NULL) +
        ylab(  bquote(.(y)~"#"/m^3) )+   
        scale_y_log10()+
        theme_bw()  
 pdf(file=paste(y,'pdf',sep="."))
 print(a)
 dev.off()  
     }

mapply(plotfun, x=split(df, df$Bug), y=levels(df$Bug))

通过四处移动项目(以依次得到错误消息的方式驱动)并添加一个+号,我可以使该版本运行:

plotfun <- function(x,y) {
    a <- ggplot(data=x, aes(x=station, y=Mean)) +
        geom_errorbar(aes(ymin=(Mean-StErr), ymax=(Mean+StErr)), colour="black", width=0.1)+
        geom_point(size=2) + 
        xlab(NULL) +
        ylab(bquote(.(y)*","*~"#"/m^3) )+  
        scale_y_log10() + annotation_logticks(sides = "l") + 
        theme_bw() +
        theme(  panel.grid.major = element_blank(),
        panel.grid.minor = element_blank()  )  +  facet_grid(.~day)
 pdf(file=paste(y,'pdf',sep="."))
 print(a)
 dev.off()  
     }

mapply(plotfun, x=split(df, df$Bug), y=levels(df$Bug))

我将只发布一页: 在此处输入图片说明

还修复了我在allplots版本中遇到的错误:

 allplots <- ggplot(data=df, aes(x=station, y=Mean)) + 
    geom_errorbar(aes(ymin=(Mean-StErr), ymax=(Mean+StErr)), colour="black", width=0.1)+
    geom_point(size=2) + 
    facet_grid(Bug ~ day) +
    xlab(NULL) +
    ylab(expression(Copepods *","* ~'#'/m^3)) +scale_x_continuous(expand=c(.3,0), breaks=c(1:3), labels=c("In", "FL", "Off")) +annotation_logticks(sides = "l") + scale_y_log10() +
    theme_bw() +
    theme(   panel.grid.major = element_blank(),
    panel.grid.minor = element_blank()     ) + 
    theme(axis.text.x=element_text(size=12)) +
    theme(axis.text.y=element_text(size=12))
print(allplots)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在ggplot2中使用重复的x轴标签绘制折线图

来自分类Dev

如何在ggplot2中使用coord_polar移动x轴标签

来自分类Dev

如何在R ggplot2中使用多个变量旋转标签轴的一部分

来自分类Dev

如何在R中使用ggplot2在轴刻度线上添加轴标签,类似于Fivethirtyeight样式?

来自分类Dev

如何在ggplot2中的方面之间强制使用常见的x轴标签/限制?

来自分类Dev

如何在ggplot2中使用x轴作为年份添加abline?

来自分类Dev

R-使用ggplot2创建的相关热图:如何在y轴上翻转标签?

来自分类Dev

如何在ggplot2中使用geom_tile控制连续轴和离散轴的长宽比?

来自分类Dev

如何从ggplot2中的两个分类变量创建x轴标签?

来自分类Dev

如何在ggplot2中使用facet_wrap(〜day)设置轴每日时间限制

来自分类Dev

如何在ggplot2中使用annotation_custom来自定义x轴

来自分类Dev

如何使用ggplot2在轴标签中同时使用上标和变量

来自分类Dev

ggplot2中的轴标签交错

来自分类Dev

r-如何在ggplot2中使用facet_grid获得长标签以适合?

来自分类Dev

如何在ggplot2中将轴居中

来自分类Dev

如何在ggplot2中更改Y轴的标题?

来自分类Dev

ggplot2:如何动态包装/调整/缩放x轴标签,以使其不会重叠

来自分类Dev

R 和 ggplot2 - 如何动态隐藏轴变量标签

来自分类Dev

在ggplot2中动态格式化单个轴标签

来自分类Dev

如何在ggplot2中每3或6个月显示日期x轴标签

来自分类Dev

闪亮:动态更改ggplot2中使用的列

来自分类Dev

闪亮:动态更改ggplot2中使用的列

来自分类Dev

在R ggplot2和ggforce中使用facet_wrap_paginate缺少x轴标签

来自分类Dev

在ggplot2轴标签的R序列中优雅地创建字符串

来自分类Dev

如何在ggplot2中获取直方图的数据标签?

来自分类Dev

如何在ggplot2中旋转标签?

来自分类Dev

如何在R ggplot2中基于y轴值对x轴重新排序

来自分类Dev

如何在ggplot2中的方面标签上使用斜体?

来自分类Dev

在ggplot2中使用facet_grid()时如何定义常见的y轴限制

Related 相关文章

  1. 1

    如何在ggplot2中使用重复的x轴标签绘制折线图

  2. 2

    如何在ggplot2中使用coord_polar移动x轴标签

  3. 3

    如何在R ggplot2中使用多个变量旋转标签轴的一部分

  4. 4

    如何在R中使用ggplot2在轴刻度线上添加轴标签,类似于Fivethirtyeight样式?

  5. 5

    如何在ggplot2中的方面之间强制使用常见的x轴标签/限制?

  6. 6

    如何在ggplot2中使用x轴作为年份添加abline?

  7. 7

    R-使用ggplot2创建的相关热图:如何在y轴上翻转标签?

  8. 8

    如何在ggplot2中使用geom_tile控制连续轴和离散轴的长宽比?

  9. 9

    如何从ggplot2中的两个分类变量创建x轴标签?

  10. 10

    如何在ggplot2中使用facet_wrap(〜day)设置轴每日时间限制

  11. 11

    如何在ggplot2中使用annotation_custom来自定义x轴

  12. 12

    如何使用ggplot2在轴标签中同时使用上标和变量

  13. 13

    ggplot2中的轴标签交错

  14. 14

    r-如何在ggplot2中使用facet_grid获得长标签以适合?

  15. 15

    如何在ggplot2中将轴居中

  16. 16

    如何在ggplot2中更改Y轴的标题?

  17. 17

    ggplot2:如何动态包装/调整/缩放x轴标签,以使其不会重叠

  18. 18

    R 和 ggplot2 - 如何动态隐藏轴变量标签

  19. 19

    在ggplot2中动态格式化单个轴标签

  20. 20

    如何在ggplot2中每3或6个月显示日期x轴标签

  21. 21

    闪亮:动态更改ggplot2中使用的列

  22. 22

    闪亮:动态更改ggplot2中使用的列

  23. 23

    在R ggplot2和ggforce中使用facet_wrap_paginate缺少x轴标签

  24. 24

    在ggplot2轴标签的R序列中优雅地创建字符串

  25. 25

    如何在ggplot2中获取直方图的数据标签?

  26. 26

    如何在ggplot2中旋转标签?

  27. 27

    如何在R ggplot2中基于y轴值对x轴重新排序

  28. 28

    如何在ggplot2中的方面标签上使用斜体?

  29. 29

    在ggplot2中使用facet_grid()时如何定义常见的y轴限制

热门标签

归档