แก้ legend ใน ggplot

สัญลักษณ์จุดกับเส้นของ legend ที่ggplotมันสร้างให้หมุนตาม coordinates ที่flip

วิธีแก้ก็ต้องลงไปแก้ในตอนที่มันสร้าง legend เท่าที่ค้นมาก็จะเขียนประมาณนี้ โดยแก้ที่ตัวแปล $drawkey ของ geom ทั้งหลาย อย่างกรณี geom_point,geom_pointrange ก็จะแก้เป็นเช่น

library(grid)
GeomPointrange$draw_key <-  function (data, params, size)     {
  
  draw_key_vpath <- function (data, params, size) {
    segmentsGrob(0.1, 0.5, 0.9, 0.5, 
                 gp = gpar(lwd = data$size * .pt, lty = data$linetype, 
                           lineend = "butt"), arrow = params$arrow)
  }
  
  grobTree(draw_key_vpath(data, params, size), 
           draw_key_point(transform(data, size = data$size * 4), params))
}

วิธีใช้ก็รัน code นี้ เพื่อแก้ drawkey ก่อนคำสั่ง ggplot

Leave a Reply