所以我正在运行优化问题,并尝试在每个时间点添加函数到绘图。我能够绘制函数,但是我已经存储了变量,看起来r并没有评估函数,直到它呈现它为止。这很难解释,但我有一个简单的例子来说明它。
$(document).ready(function() {
$.get (
"https://www.googleapis.com/youtube/v3/channels?id=UC-9-kyTW8ZkZNDHQJ6FgpwQ&key=AIzaSyCKhEoBd9nZsMAC77NKQqf403mXnXTz35s&part=snippet,contentDetails",
function(data) {
$.each(data.items, function(i,item) {
console.log(item);
pid = item.contentDetails.relatedPlaylists.uploads;
getVids(pid);
})
}
);
function getVids(pid) {
$.get(
"https://www.googleapis.com/youtube/v3/playlistItems", {
part:'snippet',
maxResults: 5,
playlistId: pid,
key: 'AIzaSyCKhEoBd9nZsMAC77NKQqf403mXnXTz35s'
},
function(data) {
var output;
$.each(data.items, function(i,item) {
console.log(item);
videTitle = item.snippet.title;
output = '<li>'+vidsTitle+'</li>'
$('#results').append(output);
})
}
)
}
});
我想要的是图表上的两条线,我将该函数添加到图形时具有斜率和y轴截距。
答案 0 :(得分:0)
使用时会评估一个函数,因此在渲染时就是这样。 您可以重命名参数以具有不同的功能:
p <- ggplot(data, aes(x = x, y =y))
slope1 = 0.5
yoff1 = 1
p <- p + stat_function(fun = function(x) slope1*x+yoff1)
slope2 = 1
yoff2 = -1
p <- p + stat_function(fun = function(x) slope2*x+yoff2)
答案 1 :(得分:0)
在实际渲染绘图之前,不会评估ggplot中的许多参数。在这里,我们可以为函数创建slope
和yoff
值参数,然后通过先前评估的args=
参数传入值。
library(ggplot2)
data = data.frame(x = runif(20, -10, 10), y = runif(20, -10,10))
p <- ggplot(data, aes(x = x, y =y))
slope = 0.5
yoff = 1
p <- p + stat_function(fun = function(x, slope, yoff) slope*x+yoff, args=list(slope=slope, yoff=yoff))
slope = 1
yoff = -1
p <- p + stat_function(fun = function(x, slope, yoff) slope*x+yoff, args=list(slope=slope, yoff=yoff))
p
答案 2 :(得分:0)
如果你有很多,请列出一些功能:
make_fun <- function(slope,yoff) {slope; yoff; function(x) x*slope + yoff}
> l <- mapply(FUN = make_fun,slope = 1:2,yoff = 3:4)
> l[[1]](1)
[1] 4
> l[[2]](1)
[1] 6