2015-12-07 14 views
6

Tôi đã thử (vô ích) để tạo biểu đồ có ggplot trong Rmarkdown. Mã này là như sau:lỗi rmarkdown với ggplot và png

```{r,echo=FALSE} 
#fig.width=12,fig.height=6 
panel2$PlotSize<-round(log(panel2$BSFA0200),0)- min(round(log(panel2$BSFA0200),0))+1# set size of dots 
panel2$PlotSize[panel2$PlotSize==-Inf]<-NA 
panel2$PlotColour<-ifelse(panel2$PlotSize<7,1,panel2$PlotSize) 
panel2$PlotSize<-as.factor(panel2$PlotSize) 
panel2$PlotColour<-as.factor(panel2$PlotColour) 

g1<-ggplot(data=panel2,aes(x=NFR,y=PROF7*100,size=PlotSize,colour=PlotSize))+ geom_point() 

g1 

``` 

Out of vải dệt kim các công trình này thông điệp tốt, tuy nhiên khi thực hiện bên trong một file RMD (hoặc là html hoặc pdf) Tôi luôn luôn nhận được lỗi này

processing file: 1Profti_model.Rmd 
    |..                | 4% 
    ordinary text without R code 

    |.....               | 8% 
label: setup (with options) 
List of 1 
$ include: logi FALSE 

    |........               | 12% 
    ordinary text without R code 

    |..........              | 15% 
label: unnamed-chunk-1 (with options) 
List of 3 
$ echo : logi FALSE 
$ warning: logi FALSE 
$ message: logi FALSE 


Attaching package: 'dplyr' 

The following objects are masked from 'package:stats': 

    filter, lag 

The following objects are masked from 'package:base': 

    intersect, setdiff, setequal, union 

Loading required package: zoo 

Attaching package: 'zoo' 

The following objects are masked from 'package:base': 

    as.Date, as.Date.numeric 

    |............              | 19% 
    inline R code fragments 

    |...............             | 23% 
label: unnamed-chunk-2 (with options) 
List of 1 
$ echo: logi FALSE 

    |..................            | 27% 
    ordinary text without R code 

    |....................            | 31% 
label: unnamed-chunk-3 (with options) 
List of 1 
$ echo: logi FALSE 

Quitting from lines 98-109 (1Profti_model.Rmd) 
Error in png(..., res = dpi, units = "in") : unable to start png() device 
Calls: <Anonymous> ... in_dir -> plot2dev -> do.call -> <Anonymous> -> png 
In addition: Warning messages: 
1: Removed 55 rows containing missing values (geom_point). 
2: In png(..., res = dpi, units = "in") : 
    unable to open file '1Profti_model_files/figure-html/unnamed-chunk-3-1.png' for writing 
3: In png(..., res = dpi, units = "in") : opening device failed 

Execution halted 

Tôi cũng đã cố gắng giải quyết vấn đề bằng cách lưu biểu đồ trong png và tải nó dưới dạng hình ảnh sau đó. Cũng không có kết quả (xem Error with loading png in Rmd file)

Nhờ sự giúp đỡ của bạn

UPDATE:

Tiếp theo những gợi ý từ một số bạn guys Tôi đã thêm một tên đoạn khác nhau và tôi sao chép mã từ Davit trên dữ liệu của tôi (xem mã cập nhật). Thật không may lỗi vẫn còn đó. Thật thú vị, knitr không thể viết một png nhưng có thể viết một csv trong cùng một thư mục mà mã là (tôi đã thử nghiệm nó).

Cuối cùng, tôi đã thử nghiệm chạy mã này rất giống nhau trên ổ đĩa C của tôi và (ngạc nhiên!) Nó hoạt động. Tuy nhiên, điều này là dành cho tôi không phải là rất hiệu quả như tôi không muốn phụ thuộc vào một máy cụ thể và tôi cần phải chia sẻ công việc này với những người khác (vì vậy ổ đĩa mạng là phải). Hơn nữa, tất cả các gói/mã khác hoạt động tốt trong ổ đĩa mạng, chỉ png() này có vẻ là một vấn đề.

Cảm ơn bạn đã trợ giúp! --- tiêu đề: New Document tác giả: Me đầu ra: html_document ---

```{r prova,echo=FALSE, results='asis', message = FALSE, error = FALSE, warning= FALSE} 
#.libPaths("D:/xxxx/packages") 
require(ggplot2) 

panel2 <- data.frame(BSFA0200 = rnorm(100), 
         NFR = rnorm(100), 
         PROF7 = rnorm(100)) 

panel2$PlotSize<-round(log(panel2$BSFA0200),0)- min(round(log(panel2$BSFA0200),0))+1# set size of dots 
panel2$PlotSize[panel2$PlotSize==-Inf]<-NA 
panel2$PlotColour<-ifelse(panel2$PlotSize<7,2,panel2$PlotSize) 

write.csv(panel2[1:100,c('BSFA0200',"NFR","PROF7")],file="test.csv") 

g1 <- ggplot(data = panel2, 
      aes(x = NFR, 
       y = PROF7 * 100, 
       size = factor(PlotSize), 
       colour = factor(PlotSize) 
       )) 

g1 + geom_point() 

``` 

đầu ra Lỗi:

Loading required package: ggplot2 

Quitting from lines 9-32 (test.Rmd) 
Error in png(..., res = dpi, units = "in") : unable to start png() device 
Calls: <Anonymous> ... in_dir -> plot2dev -> do.call -> <Anonymous> -> png 
In addition: Warning messages: 
1: Removed 35 rows containing missing values (geom_point). 
2: In png(..., res = dpi, units = "in") : 
    unable to open file 'test_files/figure-html/prova-1.png' for writing 
3: In png(..., res = dpi, units = "in") : opening device failed 
Execution halted 

phiên bản knitr của tôi là 1.11 (nó nên là mới nhất) và phiên bản R là 3.2.2

> R.Version() 
$platform 
[1] "i386-w64-mingw32" 

$arch 
[1] "i386" 

$os 
[1] "mingw32" 

$system 
[1] "i386, mingw32" 

$status 
[1] "" 

$major 
[1] "3" 

$minor 
[1] "2.2" 

$year 
[1] "2015" 

$month 
[1] "08" 

$day 
[1] "14" 

$`svn rev` 
[1] "69053" 

$language 
[1] "R" 

$version.string 
[1] "R version 3.2.2 (2015-08-14)" 

$nickname 
[1] "Fire Safety" 
+1

trong tab rmarkdown ở bên phải có hai tab nhỏ hơn, 'Output' và' Issues'. nó nói gì dưới các vấn đề? bạn có quyền loại tệp nào? – rawr

+1

Cụ thể là 'ggplot' đang gây ra sự cố? Bạn có thể đan một cốt truyện cơ sở? Bạn có lẽ không có quyền ghi vào thư mục? – Axeman

+0

@rawr Thông báo trong số phát hành là: Lỗi trong png (..., res = dpi, units = "in"): không thể khởi động thiết bị png() Gọi: ... in_dir -> plot2dev -> do.call -> -> png. Ngoài ra: Thông báo cảnh báo: 1: Trong png (..., res = dpi, units = "in"): không thể mở tệp 'XXXX/figure-html/unnamed-chunk-3-1.png' để viết. 2: Trong png (..., res = dpi, units = "in"): Mở thiết bị không thành công – Dani

Trả lời

1

Tôi có mẫu này e vấn đề một lần. Mã bên dưới hoạt động. Bạn đã có tiêu đề xấu hoặc không gọi các gói: rất khó để kể từ khi bạn không cung cấp thông tin đó. Ngoài ra, hãy đăng dữ liệu ví dụ vào lần tiếp theo.

Đây là mã đầy đủ hoạt động (ít nhất là đối với tôi). Nếu nó không chạy trên máy của bạn, hãy đăng dữ liệu của bạn và tập lệnh Rmd đầy đủ và tôi sẽ cố gắng trợ giúp.

--- 
title: New Document 
author: Me 
output: 
    html_document 
--- 

```{r,echo=FALSE, results='asis', message = FALSE, error = FALSE, warning= FALSE} 
require(ggplot2) 

panel2 <- data.frame(BSFA0200 = rnorm(100), 
         NFR = rnorm(100), 
         PROF7 = rnorm(100), 
         PlotSize = factor(rep(1:10, 10)), 
         PlotColour = factor(1:100)) 

g1 <- ggplot(data = panel2, 
      aes(x = NFR, 
       y = PROF7 * 100, 
       size = PlotSize, 
       colour = PlotSize)) 

g1 + geom_point() 
``` 

enter image description here

1

tôi nhận được tin nhắn này là tốt. Vấn đề với tôi là đường dẫn tệp quá dài. Tôi đã có tệp đánh dấu R của tôi trong quá nhiều thư mục phụ và tên của tệp đánh dấu R của tôi quá dài. Khi tôi đã giảm độ dài của đường dẫn tệp, sự cố đã được giải quyết. Tôi hi vọng nó làm việc cho bạn.

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