我试图在图表中,在x行和y行中绘制一些数字。问题是我将数字格式化为3M为3.000.000,10k为10.000,然后我尝试使用axis
函数将这些数字放入图表中,问题在于我和#39; m得到消息"二元运算符"
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")
&#13;
答案 0 :(得分:0)
这里要解决几件事:
首先,您收到的错误告诉您:您正在将一些需要数值的函数应用于非数字值。在这种情况下,它是: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"))
但是,您可能需要做一些阅读/实验来理解为什么我做了我所做的更改。例如,在您的代码中,您提供了示例向量x
和y
,但随后绘制了数据框planilha2
中的列。你能看出为什么我必须更改plot()
函数才能运行你的例子吗?