简体   繁体   中英

R ggplot spacing and sorting the figure

data=data.frame("X"=c(22,5,8,17,7,22),
"XMIN"=c(17.6,4,6.4,13.6,5.6,17.6),
"XMAX"=c(26.4,6,9.6,20.4,8.4,26.4),
"VAR"=c('A','B','C','A','B','C'),
"L1"=c(1,2,3,1,2,3),
"L2"=c(1,1,1,2,2,2))


ggplot(data) +
  geom_pointrange(aes(
    ymin = XMIN,
    ymax = XMAX,
    y = X,
    x = reorder(VAR, -X),
    colour = factor(L1),
    shape = factor(L1),
    linetype = factor(L2)))

I wish to add space between the lines for each variable A,B,C. Also within (A,B,C) for each variable I wish to sort the line from lowest to highest by X value.

enter image description here

You can use a "dodged" position to make space between the point ranges within a single x-axis value, and use reorder to change the order of the axis (please see the FAQ link for details on this).

ggplot(data) +
  geom_pointrange(aes(
    ymin = XMIN,
    ymax = XMAX,
    y = X,
    x = reorder(VAR, X),
    colour = factor(L1),
    shape = factor(L1),
    linetype = factor(L2)),
    position = position_dodge(width = 0.5))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM