2014-04-29 3 views
1

트리 링 측정을 통해 연간 트리 성장을 실제로 재현하고 있으며, 그래프와 그 이진에 많은 문제가 있습니다. 나는 두 개의 그래프를 따로 따로 처리 했으므로 제대로 작동하지만 현재는 함께 사용하면 작동하지 않습니다! GIF 파일로 저장할 때 훨씬 적습니다. 여기 (R) 두 모션 플롯을 R에 함께 넣고 GIF 파일로 저장하는 방법은 무엇입니까?

별도로 내 두 개의 모션 그래프의 코드입니다 :

x = tree01$x 
y = tree01$y 
z = tree01$z 

year=tree01$year 
TRW = tree01$TRW 

# PLOTTING DISC 
plot.new() 
for(i in 1:125) { 
    Sys.sleep(0.1) 
    par(new=T) 
    plot(x[1],y[1], xlim = c(-1000, 1000), ylim = c(-10000, 10000)) 
    par(new=T) 
    points(x[i],y[i], cex= z[i], col="black") 
    legend("topright", legend= year[i], border="") # I tried to draw without border 
} 

# PLOTTING LINES 
plot.new() 

for (i in 1:125){ 
    Sys.sleep(0.1) 
    plot(x=year, y=TRW, type="l", ylim = c(0,5)) 
    points(year[i], TRW[i], col="red", pch=20, font = 20) 
    abline(v=year[i], col = "grey") 
} 

이유를 함께 넣어하려고하지만, 다른 패널에,하지만 불행히도 작동하지 않습니다

library(animation) 

# saveGIF({ 

for(i in 1:125) { 
    old.par <- par(mfrow=c(2,1)) 
    #disc 
    Sys.sleep(0.1) 
    par(new=T) 
    plot(x[1],y[1], xlim = c(-10000, 10000), ylim = c(-10000, 10000)) 
    par(new=T) 
    points(x[i],y[i], cex= z[i], col="black") 
    legend("topright", legend= year[i], border="") 
    #lines 
    par(new=T) 
    plot(x=year, y=TRW, type="l", ylim= c(0,500)) 
    points(year[i], TRW[i], col="red", pch=20, font = 20) 
    abline(v=year[i], col = "grey") 
    par(old.par) 
} 

# }, movie.name = "tree01.gif", interval = 0.1, ani.width = 600, ani.height = 600) 

그리고 끝 부분에 다음과 같은 GIF 파일을 갖고 싶습니다. [1 년 단위의 나무 성장] [1]

매우 도움이 될 것입니다. 감사!

표 :

year TRW x y z 
1884 1,1 -2,75 3,5 0,34 
1885 1,17 -2 3,75 0,81 
1886 1,14 13,25 -2 1,34 
1887 0,84 -7,5 -6,5 1,67 
1888 0,51 2,25 -5,5 1,91 
1889 0,51 3 4 2,26 
1890 1,18 -5,25 0,25 3,05 
1891 1,01 -4,75 9,5 3,88 
1892 1,35 -11,5 16 5,07 
1893 1,27 6,75 3,25 6,21 
1894 1,28 -0,75 -7,75 7,39 
1895 0,67 -12,25 6 8,07 
1896 0,7 -5 2,25 8,82 
1897 0,34 12,5 -1,25 9,15 
1898 0,45 -3,5 1,75 9,66 
1899 2,72 -5,25 -1 12,59 
1900 1,5 -14,75 -13 14,23 
1901 1,27 -13,5 9,5 15,7 
1902 1,12 10,25 33,5 17,19 
1903 0,28 20,5 6,25 17,54 
1904 0,42 23 -4,5 18 
1905 0,74 11,25 -4,5 18,86 
1906 1,62 -9,25 -14,5 20,63 
1907 0,14 -1,25 0,25 20,8 
1908 2,02 29 -50,75 23,14 
1909 0,22 3,25 0,25 23,45 
1910 1,58 5,5 -31,75 25,36 
1911 1,33 2,25 -23,25 26,95 
1912 0,22 5,25 -3,25 27,25 
1913 0,22 5,25 -0,25 27,58 
1914 0,39 1,5 2,75 28,19 
1915 1,7 79,5 -39,25 30,54 
1916 1,57 44 -53,25 32,53 
1917 0,55 20 -9,75 33,29 
1918 2,33 61,75 -12,5 36,82 
1919 0,16 10,5 0,5 37,1 
1920 2,05 23,5 -30,25 39,87 
1921 1,03 57,5 -2,75 41,47 
1922 0,67 57,5 -10,75 42,44 
1923 1,24 61 11 44,36 
1924 1,13 47 3,25 45,98 
1925 0,47 20 20,5 46,84 
1926 0,1 -1 34 47,31 
1927 0,27 -1 -10 47,52 
1928 1,56 -10,5 32 49,88 
1929 0,31 -11,5 21,25 50,53 
1930 0,65 -20 37,25 51,84 
1931 0,84 -15,75 14,75 53,23 
1932 1,65 -29 -20,5 55,52 
1933 1,3 -54 -29,75 57,34 
1934 1,24 -30,75 -26,5 59,04 
1935 0,36 -36,5 -3,5 59,66 
1936 2,18 -60,25 -27,25 62,82 
1937 0,89 -13 11,5 64,24 
1938 1 -44 28,5 66,07 
1939 2,11 -9 15,5 69,07 
1940 0,17 -22 5 69,42 
1941 0,6 -55,25 26,25 70,6 
1942 0,23 -20,75 5,75 70,99 
1943 0,62 -59,25 22 72,12 
1944 1,95 -95,75 -5,25 74,39 
1945 0,44 -19,5 -8,75 74,75 
1946 0,61 -12,25 -9,75 75,15 
1947 2,14 -68 14,25 77,69 
1948 0,54 -16,25 -4,25 78,07 
1949 1,24 -37,25 17,25 79,54 
1950 2,46 17,75 -3,75 81,46 
+0

가 아닌 경우 R-특정 솔루션을하지만 것 [ImageMagick를 (HTTP ://www.imagemagick.org) (구체적으로'convert') 당신을 위해 일합니까? – r2evans

+0

@ r2evans 나는 그것을 시도하지는 않았지만 적어도 위의 이미지와 같이 두 그래프를 조합하는 방법을 알고 싶습니다. –

+1

두 가지 : (1)'par (new)'를 제거하면 겹치는 점 ('점 ','범례'및'abline')이 새로운 점을 만들지 않습니다. (2) 높이가 다른 경우'par (mfrow = c (2,1))'대신'layout (c (1,2), heights = c (3,2))'를 시도해보십시오. 'par (mar) '로 플레이해야 함). 'layout'은 일반적으로 행렬을 첫 번째 인수로 사용합니다. 'help (layout)'를 보라. – r2evans

답변

1

(.이 대답은 사이드 채팅 코멘트 섹션에서 그것을 유지의 결과입니다)

영업 이익은 다음 하나의 그래프에 다른 음모를 꾸미고 교대로 노력했다 , 현재 구현에서 실현 가능하지 않은 무언가.

몇 가지 : 당신은 당신이 필요로하는 무엇을 par(new) 필요하지 않습니다

  • .

  • 정확하게 반경을 나타내는 cex을 사용하면 올바르지 않습니다. 대신 symbols(..., circles)을 사용하십시오.

전체 데이터의 작은 샘플 :

tree01 <- structure(list(year = 1884:1893, TRW = c(1.1, 1.17, 1.14, 
0.84, 0.51, 0.51, 1.18, 1.01, 1.35, 1.27), x = c(-2.75, -2, 13.25, 
-7.5, 2.25, 3, -5.25, -4.75, -11.5, 6.75), y = c(3.5, 3.75, -2, -6.5, 
-5.5, 4, 0.25, 9.5, 16, 3.25), z = c(0.34, 0.81, 1.34, 1.67, 1.91, 
2.26, 3.05, 3.88, 5.07, 6.21)), .Names = c("year", "TRW", "x", "y", 
"z"), row.names = c(NA, 10L), class = "data.frame") 

다음보십시오 :

xlim <- range(x-z, x+z) 
ylim <- range(y-z, y+z) 
opar <- par(c('mfrow','mar')) 
layout(c(1,2), heights=c(2,1)) 
for (i in seq.int(nrow(tree01))) { 
    par(mar=c(3,4,4,2)+0.1) 
    cols <- c(rep('grey', i-1), 'red') 
    symbols(x[1:i], y[1:i], circles=z[1:i], inches=FALSE, xlim = xlim, ylim = ylim, xlab='', ylab='', fg=cols) 
    legend('topright', legend=year[i], box.lty=0) 
    par(mar=c(5,4,0,2)+0.1) 
    plot(year[1:i], y=TRW[1:i], type='l', xlim=c(1884,2008), ylim=c(0,3), xlab='year', ylab='TRW') 
    points(year[i], TRW[i], col='red', pch=20, font=20) 
    abline(v=year[i], col='grey') 
    Sys.sleep(0.1) 
} 
par(opar) 
+0

@ r2vans 답장을 보내 주신 모든 분들께 감사드립니다. R 전문가와 훌륭한 인물을 찾는 것이 좋습니다. 좋은 하루 되세요! –