2011-08-22 26 views
29

Tại sao điều này xảy ra?plot.new chưa được gọi là

plot(x,y) 
yx.lm <- lm(y ~ x) 
lines(x, predict(yx.lm), col="red") 

Lỗi trong plot.xy(xy.coords(x, y), type = type, ...): plot.new chưa được gọi là chưa

+1

Works đây khi áp dụng cho hai vectơ ngắn. Hãy chỉ cho chúng ta 'str (x)' và 'str (y)'. – NPE

+3

Làm thế nào để bạn mong đợi chúng tôi bình luận với các chi tiết cụ thể? Chúng tôi không có 'x',' y' và mã được sử dụng để phù hợp với mô hình tuyến tính. Hãy giúp chúng tôi giúp bạn. –

Trả lời

23

Một số hành động, rất có thể không được trình bày trong các mã nhìn thấy, đã đóng cửa các thiết bị màn hình tương tác. Nó có thể được thực hiện bằng cách nhấp vào nút "đóng". (Cũng có thể được thực hiện bằng cách thêm dev.off() khi vẽ đồ họa thiết bị đồ họa. Điều này có thể xảy ra nếu bạn dán vào lệnh vẽ nhiều dòng có dấu phẩy, tắt() ở cuối của nó nhưng lỗi ra lúc mở thiết bị bên ngoài nhưng sau đó có hte dev.off() trên một dòng riêng biệt để vô tình đóng thiết bị tương tác).

Một số triển khai R (nhiều nhất) R sẽ khởi động thiết bị đồ họa màn hình tự động mở, nhưng nếu bạn đóng thiết bị, bạn cần phải khởi tạo lại. Trên Windows có thể là window(); trên máy Mac, quartz(); và trên hộp linux, x11(). Bạn cũng có thể cần phải ra lệnh plot.new(). Tôi chỉ làm theo đơn đặt hàng. Khi tôi gặp lỗi đó, tôi phát hành plot.new() và nếu tôi không thấy cửa sổ lô, tôi cũng phát hành quartz(). Sau đó tôi bắt đầu lại từ đầu bằng một lệnh plot(., ., ...) mới và mọi bổ sung thêm vào hình ảnh màn hình lô đó.

+6

Câu trả lời này tương tự như lời khuyên "nếu nghi ngờ, định dạng lại ổ cứng của bạn". Không cần phải thêm các cuộc gọi plot.new() không mong muốn. OP (rõ ràng) đã bỏ qua cuộc gọi lm() của mình, và rất có thể một số cuộc gọi khác đã đóng là cửa sổ lô. plot.new() sẽ không "đính kèm lại" vào cốt truyện hiện có của x vs y, do đó, lời gọi() của anh ta sẽ không được ghi vào cốt truyện đó. –

+0

Nếu nó là vô hại tồi tệ nhất, sau đó nó không giống như ví dụ của bạn hoặc thậm chí không giống với rm (list = ls()). –

+0

Nó không phải lúc nào cũng vô hại. Và như tôi đã chỉ ra, cốt truyện (x, y), plot.new(); dòng (...) sẽ * không * làm những gì OP muốn –

1

Tôi có cùng một vấn đề ... vấn đề của tôi là tôi đã đóng cửa sổ thạch anh của tôi sau lô (x, y). Một khi tôi giữ nó mở, những dòng mà trước đó dẫn đến lỗi chỉ thêm những thứ vào cốt truyện của tôi (như họ đã được yêu cầu). Hy vọng rằng điều này có thể giúp một số người đến trang này.

1

Là một người mới, tôi phải đối mặt với cùng một 'vấn đề'.

Về người mới: khi bạn gọi plot(), cửa sổ đồ thị được tập trung và bạn không thể nhập lệnh thêm vào R. Đó là khi bạn kết luận rằng bạn phải đóng cửa sổ đồ thị trở về R. Tuy nhiên, một số lệnh, như identify(), hành động trên các cửa sổ biểu đồ đang mở/đang hoạt động. Khi identify() không thể tìm thấy cửa sổ đồ thị đang mở/đang hoạt động, nó sẽ hiển thị thông báo lỗi này.

Tuy nhiên, bạn chỉ cần nhấp vào cửa sổ R mà không đóng cửa sổ đồ thị. Sau đó, bạn có thể gõ nhiều lệnh tại dấu nhắc R, như identify(), vv

0

Nếu ai đó đang sử dụng print chức năng (ví dụ, với mtext), sau đó trước tiên miêu tả một âm mưu null:

plot(0,type='n',axes=FALSE,ann=FALSE) 

và sau đó in với newpage = F

print(data, newpage = F) 
5

trong trường hợp của tôi, tôi đã cố gắng để gọi plot(x, y)lines(x, predict(yx.lm), col="red") trong hai khối riêng biệt trong tập tin Rmarkdown. Nó hoạt động không có vấn đề gì khi chạy chunk bằng đoạn, nhưng tài liệu tương ứng sẽ không đan. Sau khi tôi di chuyển tất cả các cuộc gọi âm mưu trong một đoạn, vấn đề đã được giải quyết.

+2

Bạn cũng nhận được lỗi nếu bạn cố gắng chạy các dòng riêng biệt trong cùng một đoạn, thay vì thực hiện toàn bộ điều. Tôi đoán nó gọi 'dev.off()' ở đâu đó dưới mui xe? – Gabriel

0

lỗi plot.new() xảy ra khi chỉ một phần của hàm được chạy.

Vui lòng tìm tệp đính kèm để biết ví dụ để sửa lỗi Có lỗi ....Khi abline đang chạy mà không cần cốt truyện() trên enter image description here Error-miễn phí ... Khi cả hai cốt truyện và abline chạy cùng enter image description here

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