相关疑难解决方法(0)

如何使用ggplot更改轴上数字的格式?

我正在使用R和ggplot来绘制一些数据的散点图,一切都很好,除了y轴上的数字是用计算机风格的指数格式出来的,即4e + 05,5e + 05等.这显然很明显不可接受,所以我想把它显示为500,000,400,000等等.获得正确的指数表示法也是可以接受的.

该图的代码如下:

p <- ggplot(valids, aes(x=Test, y=Values)) +
  geom_point(position="jitter") +
  facet_grid(. ~ Facet) +
  scale_y_continuous(name="Fluorescent intensity/arbitrary units") +
  scale_x_discrete(name="Test repeat") +
  stat_summary(fun.ymin=median, fun.ymax=median, fun.y=median, geom="crossbar")
Run Code Online (Sandbox Code Playgroud)

任何帮助非常感谢.

r ggplot2

112
推荐指数
5
解决办法
11万
查看次数

获取给定 y 值的 x 值:线性/非线性插值函数的一般求根

我对插值函数的一般求根问题感兴趣。

假设我有以下(x, y)数据:

set.seed(0)
x <- 1:10 + runif(10, -0.1, 0.1)
y <- rnorm(10, 3, 1)
Run Code Online (Sandbox Code Playgroud)

以及线性插值和三次样条插值:

f1 <- approxfun(x, y)
f3 <- splinefun(x, y, method = "fmm")
Run Code Online (Sandbox Code Playgroud)

如何找到x这些插值函数与水平线交叉的值y = y0?以下是带有 的图形说明y0 = 2.85

par(mfrow = c(1, 2))
curve(f1, from = x[1], to = x[10]); abline(h = 2.85, lty = 2)
curve(f3, from = x[1], to = x[10]); abline(h = 2.85, lty = 2)
Run Code Online (Sandbox Code Playgroud)

我知道有关此主题的一些先前主题,例如

interpolation regression r spline

3
推荐指数
1
解决办法
1897
查看次数

使用拟合模型从Y值预测X值

我需要使用拟合模型预测xy值的相应值。

通过使用函数y从新x值预测值的通常情况很简单predict,但是我无法弄清楚如何做相反的事情。

对于具有多个x解决方案的情况,我希望获得x值范围内的所有解决方案,即1-10。并且新值y将始终在y用于拟合模型的值的范围内。

参见下面的示例代码,我需要在其中找到新的x值(new_x)。

x = seq(1:10)
y = c(60,30,40,45,35,20,10,15,25,10)

fit = lm(y ~ poly(x, 3, raw=T))

plot(x, y)
lines(sort(x), predict(fit)[order(x)], col='red') 
Run Code Online (Sandbox Code Playgroud)

样例

new_y = 30
new_x = predict(fit, data.frame(y=new_y)) #This line does not work as intended.
Run Code Online (Sandbox Code Playgroud)

编辑1:逆拟合

因为我们得到了不同的模型/拟合线,所以拟合逆关系不会得到相同的模型。

rev_fit = lm(x ~ poly(y, 3, raw=T))

plot(x, y)
lines(sort(x), predict(fit)[order(x)], col='red') 
lines(predict(rev_fit)[order(y)], sort(y), col='blue', lty=2) 
Run Code Online (Sandbox Code Playgroud)

样例2

r lm

2
推荐指数
1
解决办法
4641
查看次数

标签 统计

r ×3

ggplot2 ×1

interpolation ×1

lm ×1

regression ×1

spline ×1