-1
是否有可能直接在R中創建動畫,如同在Matlab中一樣,而沒有真正保存圖形和使用外部軟件?只是執行一個腳本?R中的動畫沒有保存圖形,也沒有外部軟件
考慮Matlab中的以下示例。
t = (1:360)/180 * pi; % 360 angles in radians from 1 to 360 degrees
n = length(t); % Length of vector
x = cos(t); % Cosines
y = sin(t); % Sines
f = figure; % Create figure and its handle
hh = plot(2, 2, 'or', 'MarkerFaceColor', 'r', 'MarkerSize', 10); % Create plot and its handle
set(gca, 'XLim', [-1 1]); % Set x axis limits
set(gca, 'YLim', [-1 1]); % Set y axis limits
axis square; axis off; % Set more properties for axes
while ishandle(f) % Until the user closes the figure
try % Try this loop, if encouter an error just break the loop
for ii = 1:n % For all angles
set(hh, 'XData', x(ii)) % Change point x coordinate
set(hh, 'YData', y(ii)) % Change point y coordinate
pause(0.01) % Make a little pause
end
end
end
後hrbrmstr的回答,我已經試過這樣:
t <- (1:360)/180 * pi
n <- length(t)
x <- cos(t)
y <- sin(t)
while(TRUE) {
for (i in 1:n) {
plot(x[i], y[i], ann=FALSE, pch=20, axes=FALSE, xlim=c(-1, 1), ylim=c(-1, 1), col="red", cex=4, asp=1)
Sys.sleep(0.01)
}
}
,它似乎在做這項工作。謝謝!
我也試過這樣:
t <- (1:360)/180 * pi
n <- length(t)
x <- cos(t)
y <- sin(t)
while(TRUE) {
for (i in 1:n) {
plot.new()
usr<-par("usr")
par(usr=c(-1.1, 1.1, -1.1, 1.1))
lines(x, y, col="green")
points(x[i], y[i], pch=20, col="red", cex=4, asp=1)
Sys.sleep(0.01)
}
}
這是接近我心中最初有。但是我發現R的「紙和筆」繪圖模型太糟糕了。沒有辦法解決這個問題嗎?
在問這個問題之前你有搜索嗎? –
我發現了動畫包,外部軟件,但沒有像我的問題那麼簡單。 – rappr
你可能想要這樣的東西:http://en.wikipedia.org/wiki/R_%28programming_language%29#Example_2 – user1436187