我是R的新手并且正在为朋友玩一些ggplot逻辑。我试图将Y轴上的所有点连接到属于同一组的x轴上的点。但我的Y轴点也正在连接,我不想要
ggplot(data=data, aes(x= Letter_coding, y= Lectin_C, group=Island,
color = Island)) +
geom_line()+
geom_point()
像这样。
修改1:
示例数据:
Organism Letter_coding Island Lectin_C
Coral (Pocillopora) A FlintMos3_2 77.42858683
Coral (Pocillopora) A FlintMos3_2 206.5272288
C-A (Red Algae) B FlintMos3_2 201.8928979
Coral (Porites) C FlintMos3_5 100.0270507
Coral (Porites) C FlintMos3_5 116.1427727
C-A (Red Algae) D FlintMos3_5 113.2093909
Coral (Porites) E FlintMos5_2 148.1921679
C-C F FlintMos5_2 140.8645009
Coral (Porites) E FlintMos5_2 120.3082097
Coral (Porites) G MaldInv 259.2967552
Coral (Porites) G MaldInv 238.4524644
C-A (CCA) H MaldInv 58.82896626
Coral (Porites) C StarTent 137.056068
Coral (Porites) C StarTent 107.1444611
C-A (Red Algae) D StarTent 120.4673744
Coral (Porites) G VostMos_2 162.9043976
Coral (Porites) G VostMos_2 202.3885923
C-A (CCA) H VostMos_2 144.3439106
Coral (Porites) I VostMos_4 309.4388754
Coral (Porites) I VostMos_4 276.9731826
C-C J VostMos_4 170.3126185
Coral (Montipora) I VostMos_4 181.4586178
Coral (Montipora) I VostMos_4 158.7184731
任何帮助将不胜感激。感谢
答案 0 :(得分:1)
您似乎希望按岛分组数据,然后通过线将珊瑚生物连接到C_有机体。您可以通过使用tidyverse中的多个函数以直接的方式执行此操作,如下所示。
#
# Load tidyverse which includes the ggplot2, dplyr, and stringr packages
#
library(tidyverse)
#
# Data should be in island_data
# Separate Coral and C_ organisms
#
coral <- island_data %>% filter(str_detect(Organism, "Coral"))
C_dash <- island_data %>% filter(str_detect(Organism, "C-"))
#
# Make data for line segment ends by joining coral and C_ data
#
plt_data <- left_join(coral, C_dash, by = "Island", suffix = c("","_C") )
sp <- plt_data %>% ggplot(aes( color = Island)) +
geom_segment(aes( x= Letter_coding, y = Lectin_C, xend = Letter_coding_C, yend = Lectin_C_C), size=1.1) +
geom_point(aes(x= Letter_coding, y=Lectin_C), size = 4) +
geom_point(aes(x = Letter_coding_C, y = Lectin_C_C), size = 4)
plot(sp)
这给出了情节
答案 1 :(得分:0)
我将在一开始就说明,这个答案不能直接回答你的问题。我认为你需要解决两个问题。
首先:使用线连接点的理由是什么?通常,我们会在一段时间内发生变化时这样做。这在您的数据中并不明显。
第二:你想在图表中传达的数据是什么?我看到了一个因变量Lectin_C
和两个类别:Island
和Organism
。字母编码我不完全明白。那么有趣的是什么?是Lectin_C
是由岛屿,有机体,还是两者兼而有之?
如果我正在绘制这些数据,我会将这些值绘制为抖动点,颜色由岛屿或生物体之一绘制,并将数据按生物体或岛屿分成组(面)。例如,如果我们主要感谢Lectin_C
Organism
:
library(tidyverse)
coral_data %>%
ggplot(aes(Letter_coding, Lectin_C)) +
geom_jitter(aes(color = Island)) +
facet_wrap(~Organism) + theme_bw()
或者相反,如果我们想通过Island查看Lectin_C
: