首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何去除“几乎平坦”的趋势线?

如何去除“几乎平坦”的趋势线?
EN

Stack Overflow用户
提问于 2021-07-11 15:58:22
回答 1查看 43关注 0票数 1

我的代码是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(dplyr)
library(ggplot2)
library(pwt10)

p1 <- pwt10.0 %>% 
    mutate(my_color = ifelse(isocode == "KOR","Korea", "Other")) %>% 
    ggplot(aes(year, labsh, group = isocode, color = my_color))+
    geom_line() +
    scale_color_manual(values = c("black", "grey", "white"))+
    xlim(1980,1997)

p1

结果是:

我想知道是否有一种方法可以删除所有“几乎平坦”的灰色线条,并使黑色线条突出(目前它被其他灰色线条所覆盖)。

EN

回答 1

Stack Overflow用户

发布于 2021-07-11 16:46:40

下面的代码将把blackline放在最上面。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p1 <- pwt10.0 %>% 
    select(year, labsh, isocode) %>% 
    mutate(my_color = ifelse(isocode == "KOR", "Korea", "Other")) %>%
    na.omit() %>%
    ggplot(aes(year, labsh, group = isocode, color = my_color)) +
    geom_line(data = . %>% filter(isocode != "KOR")) +
    geom_line(data = . %>% filter(isocode == "KOR")) +
    scale_color_manual(values = c("black", "grey")) +
    labs(color = "Country") +
    xlim(1980,1997)

p1

至于平坦的线,它们几乎是平的,但只有3条是水平的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pwt10.0 %>%
    select(year, labsh, isocode) %>% 
    na.omit() %>%
    group_by(isocode) %>%
    summarise(flat = diff(range(labsh)),
              flat = isTRUE(all.equal(flat, 0))) %>%
    filter(flat)
## A tibble: 3 x 2
#  isocode flat 
#  <fct>   <lgl>
#1 LBN     TRUE 
#2 STP     TRUE 
#3 TGO     TRUE 

在注释之后,下面的代码删除了扁平线。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p2 <- pwt10.0 %>% 
    select(year, labsh, isocode) %>% 
    na.omit() %>%
    group_by(isocode) %>%
    mutate(slope = diff(range(labsh, na.rm = TRUE)),
           flat = isTRUE(all.equal(slope, 0))) %>%
    filter(!flat) %>%
    filter(abs(slope) >= 0.15) %>%
    select(-flat, -slope) %>%
    ungroup() %>%
    mutate(my_color = ifelse(isocode == "KOR", "Korea", "Other")) %>%
    ggplot(aes(year, labsh, group = isocode, color = my_color)) +
    geom_line(data = . %>% filter(isocode != "KOR")) +
    geom_line(data = . %>% filter(isocode == "KOR")) +
    scale_color_manual(values = c("black", "grey")) +
    labs(color = "Country") +
    xlim(1980,1997)

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

https://stackoverflow.com/questions/68337835

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文