首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >风俗图tidyr

风俗图tidyr
EN

Stack Overflow用户
提问于 2021-08-24 07:32:46
回答 1查看 65关注 0票数 0

我在关注之前的一个线程(我不确定是否不适合在那里发布这个问题,因为它是2020年的问题),代码生成了一个风俗图,然而,当使用我的数据时,轴被交换,我想要的x轴的值也包含在错误的组中。我希望x-aci是平方数,y轴是种。

上一个线程:Kite Diagram in R

我的数据如下所示

代码语言:javascript
复制
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))

我遵循了另一个线程上的代码。

代码语言:javascript
复制
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

我认为问题出在变量的创建上,但我不确定该怎么做,也不知道如何排列我的数据,以便它能在这个框架中工作。

如果这个不清楚,请告诉我。非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-25 02:22:56

问题是你的数据对于kitePlot()来说是错误的。您需要将y轴变量设置为行名,x轴变量设置为列名。

下面是一种使用tidyr的方法

代码语言:javascript
复制
library(tidyverse)
library(plotrix)
dataprune %>%
   pivot_longer(-quadrat_number, names_to = "organism") %>%
   pivot_wider(names_from = quadrat_number, values_from = value) %>%
   column_to_rownames("organism") -> reshaped.dataprune

reshaped.dataprune[,1:5]
#                    0  1  2  3  4
#Ulva.sp.           12 32 24 28 48
#Hormosira           0 72 24 32  0
#Bostrychia         92  0  0 40  0
#Corallina.crustose  0  4  4  4  0
#Jania               0  0  0  0  0
#Pyropia.cinnamomea  0  0  0  0  0

kiteChart(reshaped.dataprune)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68903466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档