首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用时间序列的ggridges R

使用时间序列的ggridges R
EN

Stack Overflow用户
提问于 2020-08-05 21:13:31
回答 1查看 334关注 0票数 0

我有一个DF,我想用ggridgesgeom_density_ridges做一个密度图,但是,它在所有状态下都返回相同的线。我哪里做错了?

我想像在here中一样添加trim = TRUE,但它返回以下错误消息:

代码语言:javascript
复制
Ignoring unknown parameters: trim

我的代码:

代码语言:javascript
复制
library(tidyverse)
library(ggridges)

url <- httr::GET("https://xx9p7hp1p7.execute-api.us-east-1.amazonaws.com/prod/PortalGeral",
                 httr::add_headers("X-Parse-Application-Id" =
                                       "unAFkcaNDeXajurGB7LChj8SgQYS2ptm")) %>%
    httr::content() %>%
    '[['("results") %>%
    '[['(1) %>%
    '[['("arquivo") %>%
    '[['("url")

data <- openxlsx::read.xlsx(url) %>%
    filter(is.na(municipio), is.na(codmun)) %>%
    mutate_at(vars(contains(c("Acumulado", "Novos", "novos"))), ~ as.numeric(.))

data[,8] <- openxlsx::convertToDate(data[,8])

data <- data %>%
    mutate(mortalidade = obitosAcumulado / casosAcumulado,
           date = data) %>%
    select(-data)

ggplot(data = data, aes(x = date, y = estado, heights = casosNovos)) +
    geom_density_ridges(trim = TRUE)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-05 22:27:17

您可能不是在寻找密度脊线,而是在寻找规则的脊线。

在正常化方面,有几个选择要做。如果你想要相似的密度,你可以用它们的和来划分每组:height = casosNovos / sum(casosNovos)。接下来,您可以决定缩放每个脊线以适应线条之间的大小,这可以使用scales::rescale()函数来完成。您可以决定是按组执行此操作还是针对整个数据执行此操作。我选择了下面的全部数据。

代码语言:javascript
复制
library(tidyverse)
library(ggridges)

url <- httr::GET("https://xx9p7hp1p7.execute-api.us-east-1.amazonaws.com/prod/PortalGeral",
                 httr::add_headers("X-Parse-Application-Id" =
                                     "unAFkcaNDeXajurGB7LChj8SgQYS2ptm")) %>%
  httr::content() %>%
  '[['("results") %>%
  '[['(1) %>%
  '[['("arquivo") %>%
  '[['("url")

data <- openxlsx::read.xlsx(url) %>%
  filter(is.na(municipio), is.na(codmun)) %>%
  mutate_at(vars(contains(c("Acumulado", "Novos", "novos"))), ~ as.numeric(.))

data[,8] <- openxlsx::convertToDate(data[,8])

data <- data %>%
  mutate(mortalidade = obitosAcumulado / casosAcumulado,
         date = data) %>%
  select(-data) %>%
  group_by(estado) %>%
  mutate(height = casosNovos / sum(casosNovos))

ggplot(data = data[!is.na(data$estado),], 
       aes(x = date, y = estado, height = scales::rescale(height))) +
  geom_ridgeline()

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

https://stackoverflow.com/questions/63265979

复制
相关文章

相似问题

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