【发布时间】:2021-08-24 07:32:46
【问题描述】:
我正在关注以前的线程(不确定是否不适合在 2020 年发布问题)并且代码生成了一个风筝图,但是,当使用我的数据时,轴被交换并且我想要的值因为 x 轴也包含在错误的组中。我希望 x-acis 为样方数,y 轴为物种。
上一个帖子:Kite Diagram in R
我的数据是这样的
structure(list(quadrat_number = 0:87, Ulva.sp. = c(12L, 32L,
24L, 28L, 48L, 16L, 80L, 24L, 80L, 100L, 16L, 32L, 40L, 40L,
68L, 56L, 28L, 32L, 20L, 8L, 24L, 12L, 0L, 20L, 56L, 32L, 72L,
48L, 76L, 68L, 20L, 88L, 88L, 0L, 56L, 12L, 12L, 32L, 100L, 28L,
0L, 0L, 4L, 44L, 80L, 100L, 100L, 0L, 88L, 96L, 100L, 0L, 0L,
0L, 0L, 0L, 0L, 32L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L), Hormosira = c(0L, 72L, 24L, 32L, 0L, 0L, 52L,
8L, 24L, 80L, 4L, 16L, 12L, 16L, 60L, 16L, 12L, 0L, 0L, 0L, 32L,
8L, 0L, 64L, 0L, 8L, 24L, 0L, 0L, 0L, 4L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L), Bostrychia = c(92L, 0L, 0L, 40L, 0L, 96L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 12L, 0L, 76L, 0L, 100L, 48L,
88L, 100L, 28L, 0L, 28L, 0L, 16L, 0L, 0L, 0L, 52L, 92L, 52L,
88L, 96L, 20L, 44L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 24L,
0L, 4L, 36L, 4L, 0L, 4L, 84L, 100L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 36L, 52L, 20L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Corallina.crustose = c(0L,
4L, 4L, 4L, 0L, 0L, 0L, 0L, 0L, 100L, 8L, 0L, 56L, 0L, 88L, 0L,
40L, 0L, 28L, 0L, 28L, 64L, 12L, 0L, 76L, 0L, 20L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 4L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), Jania = c(0L, 0L, 0L,
0L, 0L, 0L, 0L, 100L, 0L, 0L, 0L, 32L, 0L, 28L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 28L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L), Pyropia.cinnamomea = c(0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 12L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 8L, 20L, 52L, 0L,
4L, 0L, 0L, 24L, 40L, 12L)), class = "data.frame", row.names = c(NA,
-88L))
我按照另一个线程上的代码。
library(plotrix)
kiteChart(dataprune)
library(dplyr)
library(tidyr)
dataprune <- as.data.frame(dataprune) %>% mutate(species = rownames(dataprune)) %>%
pivot_longer(-species, names_to = "X_var", values_to = "values") %>%
mutate(species = factor(species, levels = unique(species))) %>%
mutate(X_var = factor(X_var, levels = unique(X_var))) %>%
mutate(NewY = as.numeric(species)*2) %>%
mutate(normval = values / max(values)) %>%
mutate(NewX = as.numeric(X_var))
ggplot(dataprune, aes(x = NewX, fill = species))+
geom_ribbon(aes(ymin = NewY-normval, ymax = NewY+normval))+
scale_y_continuous(breaks = unique(dataprune$NewY), labels = levels(dataprune$species))+
scale_x_continuous(breaks = unique(dataprune$NewX), labels = levels(dataprune$X_var), name = "")
这产生了这个图表 not correct kite diagram 在另一个线程上,他们得到了这样的图表。 ideal graph
我认为问题在于变量的创建,但我不确定要做什么或如何排列我的数据,以便它可以在这个框架中工作。
如果不清楚,请告诉我。非常感谢
【问题讨论】:
-
您能检查一下您的数据样本吗?
-
你到底是什么意思?我应该截屏我的数据集吗?对不起
-
不要截屏,阅读 R 常见问题解答以获得在堆栈上共享数据的好方法:stackoverflow.com/tags/r/info
-
抱歉,已修改。感谢您为我指明方向!