使用 ggtext 时更改标签字体大小但也更改了 x axia 标签顺序

问题描述

@teunbrand 并没有完全解决我的first question

他给了我一条建议,但我对此感到困惑。

使用 big_label_md function 后 x 轴标签出现问题,但我得到了我需要的东西。

现在我想获得正确的标签顺序。最大的问题是,如果我只更改一种标签字体大小,底部标签将保持以前的正确顺序。但是,当我修改两个或更多(查看我的代码标签字体大小时,所有标签都会乱序。

这是我的可重现数据和代码

library(ggplot2)
library(ggtext)

data<-structure(list(Name = structure(58:68,.Label = c("1_control","1_CCM(Kit1 ko)","2_control","2_CCM(Pdcd20 ko)","3_control","3_1 day","3_3 days","3_1 month","4_control","4_1 day","4_3 days","4_1 month","5_control","5_1 day","5_3 days","5_1 month","6_control","6_TBI(1 day)","7_control","7_TBI(3 day)","8_control","8_TBI(1 month)","9_control","9_VEGF","10_control","10_VEGF","11_Brain Healty","12_control_1","12_control_2","12_AOD(Jnk1/2/3 ko)","13_control","13_Cpt1_ko(Cdh5 driven)","14_control","14_Tsc2ko(Tbx4 driven)","15_control","15_Zmpste24 ko","16_control","16_Adrenomedullin\nko(Cdh5 driven)","17_Lung Healthy","18_control(14w)","18_carboplatin(14w)","18_radiation(14w)","18_6 weeks","18_70 weeks","19_ECs(bone marrow)","20_control","20_diabetic nephropathy","21_control","21_Alport syndrome","22_control","22_Alport syndrome","23_Kidney Healthy","24_control","24_Differentiated","25_Heart Healthy","26_control","26_Tumor","27_control","27_Nonalcoholic\nsteatohepatitis","28_Liver Healthy","29_control","29_autoimmune uveitis","30_control","30_facioscapulohumeral\nmuscular dystrophy","31_control","31_RANKL ko","32_control","32_Notch1  +/vg","32_Notch1  +/12","32_Notch1  +/-","32_Notch1  -/12"),class = "factor"),disease = structure(c(27L,27L,28L,29L,30L,31L,32L,32L),.Label = c("CCM\nmodel1","CCM\nmodel2","Epilepsy","EAE","stroke","TBI\n1day","TBI\n3day","TBI\n1month","VEGF\nsti_DG\nregion","VEGF\nsti_CA1\nregion","Healthy\n(Brain)","AOD","CPT1\nko","Tsc2\nko","Zmpste\n_24 ko","AM\nko","Healthy\n(Lung)","Chemo\nRadio\n(Tibiae)","ECs\n(BM)","diabetic\nnephro\n_pathy","Alport\nsyndrome\nEC\npopulation1","Alport\nsyndrome\nEC\npopulation2","Healthy\n(Kidney)","Aorta","Healthy\n(Heart)","Tumor","NASH","Healthy\n(Liver)","EAU","FSHD","RANKL\nko","Notch1\nmodified"),Organ = structure(c(6L,6L,7L,8L,9L,10L,10L),.Label = c("Brain","Lung","Bone","Kidney","Liver","Retina","Mus","Lymp","Embryo"),fill = c("#FFFFFF","#00F5FF","#FFFFFF","#666666","#7FC97F","#BEAED4","#A6D854"
                     ),Condition = c("#CCCCFF","#CCCCFF","#fbb03b","#fbb03b"),Organ_fill = c("#00F5FF","#A6D854","#A6D854"),mean = c(3219.28563479013,2427.32556269574,1552.81582140235,394.765393523994,420.454351698853,1295.47692129111,1357.53823242958,1352.71703262044,1319.89488759262,4.78327819764262,6.86013366170554),sd = c(641.298872189499,338.296364941458,254.748027714364,17.1375059099585,100.491982520438,49.0693043847785,191.034062908029,105.031407429784,185.916546617784,1.21846060820158,3.38993644072368)),row.names = 58:68,class = "data.frame")



data
########

    big_label_md <- function(x,label_only_this = c("Liver",size = 14,color = "black") {
      if (is.null(label_only_this)) {
        paste0("<span style='font-size:",size,"pt; color:",color,"'>",x,"</span>")
      } else {
        ifelse(x %in% label_only_this,paste0("<span style='font-size:","</span>"),as.character(x))
      }
    }
    
    ggplot(data = data,aes(Name,mean,label = Name,fill=Organ)) +
      geom_bar(position="dodge2",stat="identity",width = 0.85,color="black") +
      # Wrap label in helper function
      facet_nested(.~big_label_md(Organ) + disease,scales="free",switch = "x",nest_line = TRUE)+
      theme_classic() +
      theme(legend.text = element_markdown())+
      theme(
        plot.title = element_text(hjust = 0.5),plot.margin = unit(c(5,10,10),"mm"),strip.background = element_rect(colour="black",fill="white"),strip.placement = "outside",strip.text.x = element_markdown())

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)