我希望用交互式numpy array
图表显示异常值对估计的OLS回归线的影响。为此我想要一个滑块,它只更新我的数据帧的一个y值,例如summaryDF.set_index(np.array(['A','B','C', 'D','E','F','G','H','I','J','K','L']), inplace=True)
print (summaryDF)
accuracy f1 precision recall
A 0.494 0.722433 0.722433 0.722433
B 0.290 0.826087 0.826087 0.826087
C 0.274 0.629630 0.629630 0.629630
D 0.278 0.628571 0.628571 0.628571
E 0.288 0.718750 0.718750 0.718750
F 0.740 0.740000 0.740000 0.740000
G 0.698 0.765133 0.765133 0.765133
H 0.582 0.778547 0.778547 0.778547
I 0.682 0.748235 0.748235 0.748235
J 0.574 0.767918 0.767918 0.767918
K 0.398 0.711656 0.711656 0.711656
L 0.530 0.780083 0.780083 0.780083
,ggvis
等等。我怎样才能做到这一点?
要播放的一些数据:
df$y[10] + 1
我当前的静态ggvis代码:
df$y[10] + 2
答案 0 :(得分:0)
可以将dplyr
功能与ggvis结合使用。
以下链接描述了它的工作原理:
将dplyr动词应用于ggvis对象会产生反应 转换:每当基础数据发生变化时 转型将重新计算。
有了这个,我最终使用mutate和自编写的函数outlier
。
重要的是在eval()
中包含反应滑块输入。我相信仍有改进的潜力,但这可能是一个很好的起点。
library(ggvis)
library(dplyr)
set.seed(123)
x <- sort(runif(15, min = 30, max = 70 ))
y <- rnorm(15 , mean = 200, sd = 50)
df <- data.frame(y, x)
v <- input_slider(0, 250, value = 0, step = 25, animate = TRUE)
outlier <- function(y, v) y + c(rep(0, 14), v)
df %>%
ggvis(x = ~x, y = ~y) %>%
mutate(y = outlier(y, eval(v))) %>%
layer_points() %>%
layer_model_predictions(model = "lm", formula = y ~ x)