Hiding/Removing R 中曲线的一部分
Hiding/Removing part of a curve in R
我希望在根据一组数据绘制曲线时,隐藏满足某些条件的部分,例如,隐藏 y 轴上值 > 10 的所有内容。
我不能只将该值设置为 0 或一个非常高的数字,而只使用 xlim 或 ylim,因为当我使用线型绘图时,我会有一条垂直线,我不想要那个.
x <- seq(from=-50,to=50,by=0.1)
#I'd like every part of the curve above 1000 to disappear for example
y<--x^2+2500
plot(x,y,type="l")
y[y>1000]<-0
#this will create two vertical lines
plot(x,y,type="l")
求职:
实际结果:
x <- seq(from=-50,to=50,by=0.1)
y<--x^2+2500
ylims <- range(y)
plot(x,y,type="l",ylim = ylims)
y[y>1000]<-NA
plot(x,y,type="l", ylim = ylims)
## tidyverse ====
x <- seq(from=-50,to=50,by=0.1)
y<--x^2+2500
library(tidyverse)
p <- tibble(x,y) %>%
mutate(yCutoff = ifelse(y>1000, NA, y)) %>%
ggplot(aes(x,y)) +
geom_line(aes(y = yCutoff)) +
ylim(range(y)) +
theme_minimal()
p
# your x-Values:
p$data %>% filter(is.na(yCutoff))%>% select(x)
#> # A tibble: 775 x 1
#> x
#> <dbl>
#> 1 -38.7
#> 2 -38.6
#> 3 -38.5
#> 4 -38.4
#> 5 -38.3
#> 6 -38.2
#> 7 -38.1
#> 8 -38
#> 9 -37.9
#> 10 -37.8
#> # … with 765 more rows
我希望在根据一组数据绘制曲线时,隐藏满足某些条件的部分,例如,隐藏 y 轴上值 > 10 的所有内容。
我不能只将该值设置为 0 或一个非常高的数字,而只使用 xlim 或 ylim,因为当我使用线型绘图时,我会有一条垂直线,我不想要那个.
x <- seq(from=-50,to=50,by=0.1)
#I'd like every part of the curve above 1000 to disappear for example
y<--x^2+2500
plot(x,y,type="l")
y[y>1000]<-0
#this will create two vertical lines
plot(x,y,type="l")
求职:
实际结果:
x <- seq(from=-50,to=50,by=0.1)
y<--x^2+2500
ylims <- range(y)
plot(x,y,type="l",ylim = ylims)
y[y>1000]<-NA
plot(x,y,type="l", ylim = ylims)
## tidyverse ====
x <- seq(from=-50,to=50,by=0.1)
y<--x^2+2500
library(tidyverse)
p <- tibble(x,y) %>%
mutate(yCutoff = ifelse(y>1000, NA, y)) %>%
ggplot(aes(x,y)) +
geom_line(aes(y = yCutoff)) +
ylim(range(y)) +
theme_minimal()
p
# your x-Values:
p$data %>% filter(is.na(yCutoff))%>% select(x)
#> # A tibble: 775 x 1
#> x
#> <dbl>
#> 1 -38.7
#> 2 -38.6
#> 3 -38.5
#> 4 -38.4
#> 5 -38.3
#> 6 -38.2
#> 7 -38.1
#> 8 -38
#> 9 -37.9
#> 10 -37.8
#> # … with 765 more rows