2013-08-05 27 views
7

Tôi gặp sự cố với toàn màn hình/không toàn màn hình của thiết bị rgl của tôi.Kích thước thiết lập của thiết bị rgl

Hiện nay tôi sử dụng R 3,00

tôi âm mưu một âm mưu persp3d (thư viện RGL) vào điện thoại của tôi, nó sẽ mở ra trong một cửa sổ khá nhỏ:

Mã R:

persp3d(x, y, z, theta=50, phi=25, expand=0.75, col=red, 
     ticktype="detailed", xlab="", ylab="", zlab="",axes=FALSE) 
axes3d(c('x--','z')) 

axis3d(edge='y+-',at =c(1,500,1000,1500,2000,2320), 
labels =rownames(fd)[c(1,500,1000,1500,2000,2320)]) 

nào trông giống như sau:

sc

Tôi n ow đã xoay nó và lưu các tệp png đơn vào ổ đĩa của tôi. Vấn đề là, các tệp png quá nhỏ? Tôi muốn đặt chúng vào một bài báo bằng LaTex và lệnh \animategraphics, nhưng nó lại là pixely (không sắc nét).

Nếu tôi nhấp vào biểu tượng toàn màn hình trong thiết bị rgl, để âm mưu R lớn hơn, điều này sẽ giúp ích và mọi thứ hoạt động. Vấn đề là, có quá nhiều khoảng trắng xung quanh nó. Với không gian màu trắng ở trên, bên dưới, bên trái và bên phải nó tôi không thể bao gồm nó trong LaTex, bởi vì nó không phù hợp vì kích thước lớn của nó (chiều rộng, chiều cao). Tôi có 200 tệp png, do đó việc xóa vùng trắng bằng tay không phải là một công việc tốt.

Những hình ảnh nhỏ giống như thế này:

sc11

Sau đây sẽ xảy ra, nếu bạn phóng to (đây là, những gì LaTex không, khi tôi đặt nó vào giấy của tôi, nó làm tăng hình ảnh, ảnh chụp màn hình là từ tập tin LaTex cùng hình ảnh của tôi, một góc hơi khác nhau, nhưng vấn đề vẫn như cũ):.

sc22

Bạn thấy rằng có vẻ pixely (không tốt). Ngoài ra, bạn có thể thấy vấn đề với các tệp lớn có quá nhiều khoảng trắng: Hình ảnh nhỏ với một số khoảng trắng phía trên đã phá hủy tiêu đề của tôi.

Vậy làm thế nào tôi có thể giải quyết vấn đề này? Làm thế nào tôi có thể yêu cầu R sử dụng các ô toàn màn hình nhưng không có nhiều khoảng trắng xung quanh nó? Khi tôi nhấp vào chế độ toàn màn hình và lưu các ảnh đó mọi thứ đều ổn, ngoại trừ khoảng trắng xung quanh nó.

Dưới đây là file png với quá nhiều khoảng trắng xung quanh nó (trong ảnh chụp màn hình này không có khoảng trắng bên dưới, nhưng khi tôi sử dụng zoom đúng nó là có):

sc2

Một thêm lưu ý: Đây là mã R tôi sử dụng để lưu các tệp png-:

M <- par3d("userMatrix") 
movie3d(spin3d(rpm=3), duration=20,dir="C:/test/movie", clean=FALSE) 
play3d(spin3d(rpm=3), duration=20) 

Trả lời

3

Bạn có thể kiểm tra trạng thái của thiết bị RGL bằng par3d. "Khoảng trống" được kiểm soát bởi các giá trị "windowRect". Có một sự gia tăng tự động trong các giá trị đó khi kích thước của màn hình được tăng lên;

> par3d("windowRect") 
[1] 100 100 356 378 
> par3d("windowRect") # made the window have roughly 4 times the area 
[1] 137 0 744 544 

Bạn cũng có thể chỉ định các góc của windowRect sẽ là gì.

?par3d 

Ðiều này sẽ giúp bạn kiểm soát mà tránh được cả "vấn đề khoảng trắng và sự chồng chéo tiêu đề.

Nếu bạn muốn làm cho đối tượng lớn hơn trong cửa sổ xem, rgl.viewpoint chức năng có thể phóng to. Số làm nhỏ đối tượng xuất hiện lớn hơn

rgl.viewpoint( zoom = .5) 
+0

cảm ơn anwer của bạn, nhưng nó không giúp tôi. Trong hướng dẫn nó nói, cửa sổ đó mang lại cho tôi "bên trái, trên cùng, bên phải và dưới cùng của cửa sổ hiển thị (tính bằng pixel)." Tôi đã cố gắng đặt nó thành ví dụ 5,5,5,5 (giá trị nhỏ cho biên giới nhỏ) với ví dụ par3d ("usersMatrix", windowRect = c (5,5,5,5)) nhưng nó không hoạt động (không có ảnh). Có vẻ như, điều này chỉ cho tôi kích thước như thể tôi sẽ tăng nó bằng chuột? Vì vậy, nếu tôi đặt số lớn hơn, tôi lại gặp vấn đề tương tự. Vậy đây không phải là giải pháp, vì tôi vẫn còn khoảng trắng? –

+1

Cần có đủ "khoảng trống" để bạn có thể xoay đối tượng. Trừ khi đối tượng là hình cầu, điều đó có nghĩa là sẽ có một số khoảng trống khi đối tượng được hiển thị ở một số góc nhìn. Bạn có thể cần phải xuất nó vào một hình ảnh và chỉnh sửa nếu bạn muốn loại bỏ tất cả khoảng trắng đó. Hãy thử 'par3d (" windowRect "= c (0,0,1200,1200))'. Tôi nghĩ rằng hai giá trị cuối cùng cần phải lớn. –

+0

cảm ơn câu trả lời của bạn, nhưng: Không gian trắng không cần thiết để quay? Ngay cả khi không có không gian màu trắng, nó vẫn có thể xoay, hoặc nói, một boarder nhỏ màu trắng (một số boarder nhỏ sẽ là ok). Khi tôi sử dụng par3d ("windowRect" = c (161,23,876,691)) điều này cho đúng kích thước của cốt truyện, nhưng vấn đề là, rằng vẫn còn quá nhiều không gian? Nếu tôi giảm số lượng hoặc thay đổi nó, cốt truyện chính nó (kích thước của bề mặt) cũng thay đổi, do đó, không chỉ không gian màu trắng được giảm mà còn là cốt truyện hoàn chỉnh. Xuất nó sang png và loại bỏ không gian trắng 200 lần bằng tay? –

0

Đó là đủ để thiết lập r3dDefaults:.

r3dDefaults$windowRect <- c(0,50, 800, 800) 
plot3d(mdatapc, col=kmeanspc.cluster, size = 10)  
3

Sử dụng par3d (windowRect = c (20, 30, 800, 800))

Các vấn đề liên quan