2017-06-10 83 views
1

我試圖在圖中繪製一些數字,在x和y行中。問題是我將數字格式化爲3M爲3.000.000,10K爲10.000,然後我試圖使用axis函數將這些數字放在圖中,問題是我收到消息「Non-數值參數二元運算符」在R中的二元運算符的非數字參數

x<-c(10000,20000,50000,200000) 
 
y<-c(24679826,99532203,623224134,1422415645) 
 
x1<-paste(format(round(x/1e3, 1), trim = TRUE), "K") 
 
y1<-c(paste(format(round(y/1e6, 1), trim = TRUE), "M")) 
 

 
options(scipen=999) 
 
plot(planilha2$N,planilha2$Iteracoes_Insercao,type="b", 
 
     xlab="Tamanho dos Vetores", 
 
     ylab="Numero de iterações", 
 
     xaxt="n",yaxt="n",pch=16,col="red",lwd=2.2, 
 
     main="Inserção iterativo (Vetores gerados aleatoriamente)", 
 
     cex.main=1) 
 

 
axis(1, (paste(format(round(x1/1e3, 1), trim = TRUE), "K"))) 
 
axis(2,paste(round(y/1e6, 1), trim = TRUE), "M")

enter image description here

回答

0

幾件事情來解決這裏:

首先,你收到我的錯誤s告訴你這一點:你正在將一些需要數值的函數應用到一個非數值的值。在這種情況下,它是:x1/ 1e3。 x1被設置在一個字符向量之前幾行。它是一組字符串,所以你不能將它分成1e3。我假設這是一個錯字,而你的意思是x而不是x1

接下來,您缺少axis()函數的一些參數。您需要告訴axis()哪些點繪製標籤繪製哪些標籤。請參閱axis()函數的文檔。

來幫助你,我固定的代碼,以便它繪製這裏的情節:

x<-c(10000,20000,50000,200000) 
y<-c(24679826,99532203,623224134,1422415645) 

options(scipen=999) 
plot(x, y,type="b", 
    xlab="Tamanho dos Vetores", 
    ylab="Numero de iterações", 
    xaxt="n",yaxt="n",pch=16,col="red",lwd=2.2, 
    main="Inserção iterativo (Vetores gerados aleatoriamente)", 
    cex.main=1) 

axis(1, x, labels = paste(format(round(x/1e3, 1), trim = TRUE), "K")) 
axis(2, y, labels = paste(format(round(y/1e6, 1), trim = TRUE), "M")) 

但是,你可能會需要做一些閱讀/實驗瞭解爲什麼我所做的更改我沒有。例如,在您的代碼中,您給出了示例向量xy,但隨後繪製了數據框planilha2中的列。你能明白爲什麼我必須改變plot()函數才能讓你的例子運行嗎?

+0

我今天就工作了,有時候我迷路了,哈哈,我打電話給我畫了一個數據框的列,因爲我的老師向我展示了從csv調用和把變量放在一起的區別。感謝您的幫助,但我仍然有與y軸的消息 –

相關問題