繁体   English   中英

通过 y 轴值而不是 x 轴绘制 geom_line

[英]Draw geom_line by y axis values instead of x axis

ggplot 的 geom_line 似乎是根据 x 轴绘制的,但我需要它根据 y 轴值绘制。

这是我到目前为止所拥有的。

dat %>% 
  ggplot(aes(x=val, y=height, 
             color=factor(res), shape=plat), size=2) + 
  geom_point() + 
  scale_shape_manual(values=c(1, 4)) +
  geom_path() +
  facet_wrap(~transect, ncol=4) + 
  labs(x="values", y="Height aboveground (cm)", 
       color="", shape = "") +
  scale_y_continuous(breaks = c(140,400,800,1200)) +
  theme_bw() +  
  theme(legend.position="top") 

图。 请注意,例如,在面板 2 中,线序应以 y 轴上的高度排序(编码为数字数据类型),并应从 140 厘米开始并连接到 400 厘米,然后是 800 和 1200 厘米。 但它从 400 厘米开始,然后到 140 厘米,然后到 800 和 1200 厘米......

在此处输入图像描述

这是来自 dput 的 output

dat <- structure(list(transect = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 
8, 8), res = c(0.1, 0.1, 0.1, 0.1, 0.25, 0.25, 0.25, 0.25, 0.5, 
0.5, 0.5, 0.5, 1, 1, 1, 1, 2, 2, 2, 2, 0.1, 0.1, 0.1, 0.1, 0.25, 
0.25, 0.25, 0.25, 0.5, 0.5, 0.5, 0.5, 1, 1, 1, 1, 2, 2, 2, 2, 
0.1, 0.1, 0.1, 0.1, 0.25, 0.25, 0.25, 0.25, 0.5, 0.5, 0.5, 0.5, 
1, 1, 1, 1, 2, 2, 2, 2, 0.1, 0.1, 0.1, 0.1, 0.25, 0.25, 0.25, 
0.25, 0.5, 0.5, 0.5, 0.5, 1, 1, 1, 1, 2, 2, 2, 2, 0.1, 0.1, 0.1, 
0.1, 0.25, 0.25, 0.25, 0.25, 0.5, 0.5, 0.5, 0.5, 1, 1, 1, 1, 
2, 2, 2, 2, 0.1, 0.1, 0.1, 0.1, 0.25, 0.25, 0.25, 0.25, 0.5, 
0.5, 0.5, 0.5, 1, 1, 1, 1, 2, 2, 2, 2, 0.1, 0.1, 0.1, 0.1, 0.25, 
0.25, 0.25, 0.25, 0.5, 0.5, 0.5, 0.5, 1, 1, 1, 1, 2, 2, 2, 2, 
0.1, 0.1, 0.1, 0.1, 0.25, 0.25, 0.25, 0.25, 0.5, 0.5, 0.5, 0.5, 
1, 1, 1, 1, 2, 2, 2, 2), height = c(1200, 800, 400, 140, 140, 
1200, 800, 400, 1200, 140, 800, 400, 1200, 800, 400, 140, 1200, 
800, 400, 140, 1200, 800, 400, 140, 140, 1200, 800, 400, 140, 
1200, 800, 400, 1200, 800, 140, 400, 1200, 800, 400, 140, 1200, 
800, 400, 140, 140, 1200, 800, 400, 140, 1200, 800, 400, 1200, 
800, 400, 140, 1200, 800, 400, 140, 1200, 800, 400, 140, 140, 
1200, 800, 400, 1200, 140, 800, 400, 1200, 800, 400, 140, 1200, 
800, 400, 140, 1200, 800, 400, 140, 1200, 800, 140, 400, 1200, 
800, 400, 140, 1200, 800, 400, 140, 1200, 800, 400, 140, 1200, 
800, 400, 140, 1200, 800, 400, 140, 1200, 800, 400, 140, 1200, 
800, 400, 140, 1200, 800, 400, 140, 1200, 800, 400, 140, 1200, 
140, 800, 400, 1200, 800, 400, 140, 1200, 800, 400, 140, 1200, 
800, 400, 140, 1200, 800, 400, 140, 140, 1200, 800, 400, 1200, 
800, 400, 140, 800, 1200, 400, 140, 800, 1200, 400, 140), val = c(0.805986355099861, 
0.79595250810807, 0.789271529268629, 0.788302451342739, 0.575542100069675, 
0.543755283066247, 0.525032449963394, 0.511482158709499, 0.491499347463951, 
0.490791991313666, 0.467537657873051, 0.452860017754639, 0.422090025217247, 
0.392381066905281, 0.377172909674156, 0.375050841223302, 0.292643849715112, 
0.250202480698019, 0.230396508490042, 0.163905030363263, 0.786060132346336, 
0.775651386594894, 0.770034978761632, 0.769097731862504, 0.557062420643482, 
0.500009726147066, 0.483674220051425, 0.472776514361098, 0.469482887286334, 
0.44499068058272, 0.425273127893529, 0.414397527082899, 0.375758197373587, 
0.354183834789897, 0.348524985587618, 0.341805102159912, 0.255861329900298, 
0.226152371588333, 0.206346399380356, 0.149757907357565, 0.749143214862967, 
0.739646958545393, 0.73462472987837, 0.733973962220108, 0.461083033001701, 
0.406019777677962, 0.388822181274161, 0.381527570974348, 0.355244869015325, 
0.34949760029426, 0.332078955093495, 0.324298037440361, 0.293351205865397, 
0.274252589807705, 0.266117994079429, 0.242775241120028, 0.202102262478647, 
0.172393304166681, 0.166734454964402, 0.0846811415313553, 0.75026791114192, 
0.73020375393909, 0.720940925151109, 0.719890501267936, 0.467802916429408, 
0.436458197019909, 0.399299894250255, 0.38692116162027, 0.378852880531083, 
0.373105611810018, 0.341274585047198, 0.328630593860856, 0.31987706150108, 
0.281326151310554, 0.267532706379999, 0.256568686050583, 0.216249385484344, 
0.168149167264972, 0.155416756559844, 0.0945841276353437, 0.814725740336631, 
0.792677449132251, 0.778834489271175, 0.773447972186756, 0.578172580753546, 
0.538140643623361, 0.525253498760358, 0.509691663454091, 0.536681721563399, 
0.492825640245735, 0.460375676851416, 0.435087694478732, 0.476910126864326, 
0.429517264795238, 0.391673710754997, 0.289814425113973, 0.373282450847589, 
0.315279246524229, 0.271423165206566, 0.0634604570228087, 0.837721888782393, 
0.818170564788518, 0.805042034639231, 0.799941996795677, 0.628085399108024, 
0.591347089052602, 0.56530754077024, 0.53513437998465, 0.587346105827554, 
0.547999419967957, 0.517759944543278, 0.447289588071146, 0.530669194285977, 
0.488227825268884, 0.453921051980067, 0.300778445443388, 0.429870942870381, 
0.376111875448729, 0.335085218732206, 0.0860958538319251, 0.836215220182286, 
0.827178745362396, 0.821381961710812, 0.81906890709938, 0.628505391822256, 
0.623399164612386, 0.614291954177469, 0.600962711720538, 0.584516681226414, 
0.567893811694719, 0.552685654463594, 0.533852296962259, 0.52960816006055, 
0.510863222078, 0.492471962170593, 0.382124402726151, 0.427041518269241, 
0.398747272257845, 0.373282450847589, 0.134196072051297, 0.753977994150165, 
0.75141029132463, 0.751067223591742, 0.750922215580934, 0.485862603141369, 
0.476490134150094, 0.476048036556166, 0.47516384136831, 0.413248073338686, 
0.413071234301114, 0.41174494151933, 0.406174511835837, 0.356659581315895, 
0.356659581315895, 0.35453751286504, 0.299363733142819, 0.260105466802007, 
0.260105466802007, 0.255861329900298, 0.122878373646739), plat = c("ALS", 
"ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", 
"ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", 
"ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", 
"ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", 
"ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", 
"ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", 
"ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", 
"ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", 
"ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", 
"ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", 
"ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", 
"ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", 
"ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", 
"ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", 
"ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", 
"ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", 
"ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", "ALS", 
"ALS", "ALS", "ALS", "ALS", "ALS", "ALS")), row.names = c(NA, 
-160L), class = c("tbl_df", "tbl", "data.frame"))

在绘图之前arrange数据以获得所需的线序。

library(dplyr)
library(ggplot2)

dat %>% 
  arrange(transect, res, height) %>%
  ggplot(aes(x=val, y=height, 
             color=factor(res), shape=plat), size=2) + 
  geom_point() + 
  scale_shape_manual(values=c(1, 4)) +
  geom_path(position="identity") +
  facet_wrap(~transect, ncol=4) + 
  labs(x="Gap fraction", y="Height aboveground (cm)", 
       color="Voxel size (m)", shape = "Platform") +
  scale_y_continuous(breaks = c(140,400,800,1200)) +
  theme_bw() +  
  theme(legend.position="top") 

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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