2011-03-22 18 views
5

पृष्ठभूमि: मैं आर के जाली :: क्लाउड() फ़ंक्शन का उपयोग कर घूर्णन 3 डी स्कैटर प्लॉट को एनिमेट करने की कोशिश कर रहा हूं। मैं आर में पीएनजी छवियों का अनुक्रम बनाता हूं, फिर अनुक्रम से एनिमेटेड जीआईएफ बना देता हूं।घुमावदार जाली क्लाउड स्कैटर प्लॉट के पैमाने को कैसे संरक्षित किया जाए?

समस्या यह है कि साजिश का स्तर घूर्णन के साथ बदलता है ताकि एनिमेटेड घन बढ़ने लगती है और यह बदल जाती है। मैं दाएँ हाथ साजिश चाहते हैं बाएं हाथ की साजिश के रूप में एक ही आकार प्रकट करने के लिए

library(lattice) 
par.set <- 
    list(axis.line = list(col = "transparent"), 
    clip = list(panel = "off")) 

print(cloud(Sepal.Length ~ Petal.Length * Petal.Width, 
    data = iris, cex = .8, 
    groups = Species, 
    screen = list(z = 0, x = 0, y = 0), 
    par.settings = par.set, 
    scales = list(col = "black")), 
    split = c(1,1,2,1), more = TRUE) 
print(cloud(Sepal.Length ~ Petal.Length * Petal.Width, 
    data = iris, cex = .8, 
    groups = Species, 
    screen = list(z = 0, x = 0, y = 30), 
    par.settings = par.set, 
    scales = list(col = "black")), 
    split = c(2,1,2,1)) 

:

यहाँ सिर्फ दो भूखंडों (बादल उदाहरणों में से एक के आधार पर) का उपयोग कर एक उदाहरण है। इस उदाहरण में यह काफी छोटा है। मुझे आर या जाली :: क्लाउड() का उपयोग करने की ज़रूरत नहीं है, लेकिन यह मेरे पास बहुत करीब है ...

आरजीएल की कोशिश कर रहा है, ऐसा लगता है कि आरजीएल की मेरी प्रति आर के मेरे संस्करण के साथ असंगत है।

> library(rgl) 
> df <- data.frame(x=runif(10,0,1), y=runif(10,0,1), z=runif(10,0,1), color=round(runif(10,1,3))) 
> plot3d(df$x, df$y, df$z, col=df$color, size=2, type='s') 
> rgl.snapshot("C:\\pic.png", fmt="png", top=TRUE) 
[1] "failed" 
Warning messages: 
1: In rgl.snapshot("C:\\pic.png", fmt = "png", top = TRUE) : 
    RGL: PNG Pixmap Saver Warning: Application was compiled with png.h from libpng-1.2.40 
2: In rgl.snapshot("C:\\pic.png", fmt = "png", top = TRUE) : 
    RGL: PNG Pixmap Saver Warning: Application is running with png.c from libpng-1.4.1 
3: In rgl.snapshot("C:\\pic.png", fmt = "png", top = TRUE) : 
    RGL: PNG Pixmap Saver Warning: Incompatible libpng version in application and library 

> sessionInfo() 
R version 2.11.1 (2010-05-31) 
i386-pc-mingw32 

locale: 
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252 
[4] LC_NUMERIC=C       LC_TIME=English_United States.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] rgl_0.92.798 

loaded via a namespace (and not attached): 
[1] tools_2.11.1 

मैं आर 2.12.2 के लिए अद्यतन और अब इस (ImageMagick के बजाय GraphicsMagick का प्रयोग करके) काम करता है:: जब मैं एक मिनट है मैं आर अपग्रेड कर देंगे

open3d() 
with(iris, plot3d(Petal.Length, Petal.Width, Sepal.Length, col=Species)) 
movie3d(spin3d(), duration=12, dir="C:\\Movie", convert=FALSE) 
system('"C:\\program files\\graphicsmagick-1.3.7-q8\\gm.exe" convert -delay 12 C:\\Movie\\movie*.png C:\\Movie\\animate.gif') 

उत्तर

3

RGL पैकेज की कोशिश करो, यह मैं एक ही phenomea

से संपर्क किया
require ("rgl") 

df <- data.frame(x=runif(10,0,1), y=runif(10,0,1), z=runif(10,0,1), color=round(runif(10,1,3))) 

plot3d(df$x, df$y, df$z, col=df$color, size=2, type='s') 

?movie3d() 

demo(flag) 

test <- spin3d(rpm=6,axis=c(0,0,1)) 
?spin3d 

open3d() 
plot3d(oh3d(col="lightblue", alpha=0.5)) 
play3d(spin3d(axis=c(0,0,1), rpm=20), duration=3) 


open3d() 
plot3d(cube3d(col="green")) 
M <- par3d("userMatrix") 
play3d(par3dinterp(userMatrix=list(M, 
           rotate3d(M, pi/2, 1, 0, 0), 
           rotate3d(M, pi/2, 0, 1, 0))), 
    duration=4) 

movie3d(spin3d(), duration=5) 

एक पुष्टि कार्य उदाहरण के लिए मेरी सत्र जानकारी।

R version 2.12.2 (2011-02-25) 
Platform: i386-pc-mingw32/i386 (32-bit) 

locale: 
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252 
[3] LC_MONETARY=English_United States.1252 
[4] LC_NUMERIC=C       
[5] LC_TIME=English_United States.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] rgl_0.92.798 

loaded via a namespace (and not attached): 
[1] tools_2.12.2 
+0

@OneWhoIs नामित यह आशाजनक लग रहा है लेकिन किसी कारण से movie3d() आउटपुट फ़ाइलों को बनाने में असमर्थ है। यह प्रत्येक फ्रेम के लिए खाली पीएनजी फाइलें बनाता है और 'त्रुटि movie115.png [1] "विफल" जैसे त्रुटि को लॉग करता है। –

+0

प्लॉट 3 डी() में क्लाउड() के रूप में उपस्थिति पर समान स्तर का नियंत्रण प्रतीत नहीं होता है। मैं डिफ़ॉल्ट विंडो आकार और धुरी लेबल के आकार को कैसे बदल सकता हूं? धन्यवाद! –

+0

@ केंट जॉनसन मुझे यकीन नहीं है कि क्यों movie3d() आपके लिए विफल रहता है, उपर्युक्त काम मेरी मशीन पर त्रुटि के बिना, लेकिन यह बिल्कुल सही नहीं है कि आप क्या खोज रहे थे लेकिन एक उदाहरण उदाहरण। समस्या निवारण के लिए क्या आप sessionInfo() के आउटपुट को पोस्ट कर सकते हैं? शायद यह एक आर संस्करण मुद्दा है। एक न्यूनतम कमांड उदाहरण पोस्ट करना भी संभव है जिसे आपने यह त्रुटि प्राप्त करने के लिए उपयोग किया था? इस त्रुटि को दोहराने का प्रयास करना मेरे लिए उपयोगी होगा। –

संबंधित मुद्दे