• ggplot2 注释文本到图所展示的数据上


    best_in_class <-mpg %>% group_by(class) %>%filter(row_number(desc(hwy))==1) #取每组hwy 最大的那行观测赋值给best_in_class

    ggplot(mpg,aes(displ,hwy))+geom_point(aes(color=class))+geom_text(aes(label=model),data=best_in_class) 

    # 1 先把mpg 的 hwy 对displ作图,按class分颜色散点图

    # 2 再依据存有每类的hwy最大值的观测数据,为每个class里边hwy最大的点标注上它的model

      

    注: row_number() 等同于rank,  row_number(desc(hwy)) 返回值是按从大到小顺序排列时,当前元素所在的第几。如

      > x <- c(5, 1, 3, 2, 2, NA)

       > row_number(x)

       > row_number(desc(x) )

     上图 标签彼此重叠,标签和数据点混在一起。因此改用geom_label()函数,为文本设置方框,设置nudge_y参数让标签位于对应数据点的正上方

     ggplot(mpg,aes(displ,hwy))+geom_point(aes(color=class))+geom_label(aes(label=model),data=best_in_class,nudge_y = 2,alpha=0.5)

      但右上角有重叠的字符框,因为数据点位置几乎重叠,用ggrepel包的geom_label_repel自动调节标签位置,以避免重叠

       ggplot(mpg,aes(displ,hwy))+geom_point(aes(color=class))+geom_point(size=3,shape=1,data=best_in_class)+ggrepel::geom_label_repel(aes(label=model),data=best_in_class) #这里还自动用较大的空心圆来强调添加了标签的数据点

    class_avg<-mpg %>% group_by(class) %>%summarize(displ=median(displ),hwy=median(hwy))

    ggplot(mpg,aes(displ,hwy,color=class))+ggrepel::geom_label_repel(aes(label=class),data=class_avg,size=6,label.size=0,segment.color=NA)+geom_point()+theme(legend.position = "none") # 讲class 作为lable 标注在图上,theme(legend.position = "none")  删掉图例legend

    label<-tibble(displ=Inf,hwy=Inf,label=paste("Increasing engine size is \nrelated to", + "decreasing fuel economy.")) #设置Inf,不从数据集映射位置

     ggplot(mpg,aes(displ,hwy))+geom_point()+geom_text(aes(label=label),data=label,vjust="top",hjust="right") #通过vjust,hjust 设置唯一的标签的位置

    备注:

     geom_text() 函数,通过设置label,向图形中添加文本标签。

    hjust 与vjust组合:

    此外:

      geom_rect() 在选择的数据点周围绘制矩形,矩形边界由 xmin,xmax,ymin,ymax确定

      geom_segment() 搭配arrow参数画箭头,指向需关注的数据点。使用x和y定义开始位置,xend和yend定义结束位置。

  • 相关阅读:
    day12(jsp指令&内置对象&动作标签、JavaBean、EL表达式&函数库)
    day11(jsp入门&Cookie&HttpSession&一次性图片校验码)
    day10(java web之request&respone&访问路径&编码问题)
    day09:Servlet详解
    day08:软件系统的体系结构&Tomcat详解&Web应用&http协议
    泛型详解
    类加载器
    动态代理2
    动态代理3之代理工厂实现
    动态代理1
  • 原文地址:https://www.cnblogs.com/koujiaodahan/p/15940669.html
Copyright © 2020-2023  润新知