2016-01-13 79 views
-1

我想創建一個繪圖表與RoundrobinPrediction點,沒有顏色,其中RoundrobinPrediction型之分是不同的,它有一個傳說。我想爲結果添加最適合的線條。情節multipoints和最佳擬合線

我無法將所有這些功能添加到一個有2點的圖中。我習慣了Gnuplot,但我不知道如何用R來做到這一點。我如何用R來做到這一點?

[1]的輸入數據

Inputdata,Roundrobin,Prediction 
1,178,188 
2,159,185 
3,140,175 

[2]腳本來生成數據

no_faults_data <- read.csv("testresults.csv", header=TRUE, sep=",") 

# Graph 1 
plot(no_faults_data$Inputdata, no_faults_data$Roundrobin,ylim = range(c(no_faults_data$Roundrobin,no_faults_data$Prediction)),xlab="Input data size (MB)", ylab="Makespan (seconds)") 
points(no_faults_data$Inputdata, no_faults_data$Prediction) 
abline(no_faults_data$Inputdata, no_faults_data$Roundrobin, untf = FALSE, \dots) 
abline(no_faults_data$Inputdata, no_faults_data$Prediction, untf = FALSE, \dots) 
legend("top", notitle, c("Round-robin","Prediction"), fill=terrain.colors(2), horiz=TRUE) 
+0

看看abline()..https://stat.ethz.ch/R-manual/R-devel/library/graphics/html/abline.html – MLavoie

+0

我知道有'abline',問題是我不知道如何將所有這些結合在一個圖中。我習慣於Gnuplot而不是R. – xeon123

回答

1

在基礎R你將不得不先創建一個擬合模型:

robin <- lm(Roundrobin ~ Inputdata, data = no_faults_data) 
pred <- lm(Prediction ~ Inputdata, data = no_faults_data) 

plot(no_faults_data$Inputdata, no_faults_data$Roundrobin, 
    ylim = range(c(no_faults_data$Roundrobin,no_faults_data$Prediction)), 
    xlab = "Input data size (MB)", ylab = "Makespan (seconds)", 
    col = "green", pch = 19, cex = 1.5) 
points(no_faults_data$Inputdata, no_faults_data$Prediction, pch = 22, cex = 1.5) 
abline(robin, lty = 1) 
abline(pred, lty = 5) 
legend(1.1, 155, legend = c("Round-robin","Prediction"), pch = c(19,22), col = c("green","black"), 
     bty = "n", cex = 1.2) 

其中給出:

enter image description here

要進一步定製基本R圖,請參閱?par?legend


隨着ggplot2你需要將你的數據重塑爲長格式:

library(reshape2) 
library(ggplot2) 
ggplot(melt(no_faults_data, id="Inputdata"), 
     aes(x=Inputdata, y=value, shape=variable, color=variable)) + 
    geom_point(size=4) + 
    geom_smooth(method = "lm", se = FALSE) + 
    theme_minimal() 

這給:

enter image description here


使用的數據:

no_faults_data <- read.csv(text="Inputdata,Roundrobin,Prediction 
1,178,188 
2,159,185 
3,140,175", header=TRUE) 
+0

圖例中可能有不同的點嗎? '傳奇(...,pch =(9,19),c(「循環賽」,「預測」),fill = c(「綠色」,「白色」))' – xeon123

+0

@ xeon123查看更新,HTH – Jaap

0

您應該查看ggplot2包進行繪圖。可能不需要您提供的3分數據,但它會比默認數據更好。

df <- data.frame("Inputdata" = c(1,2,3,1,2,3), "score" = c(178,159,140,188,185,175), "scoreType" = c(rep("Roundrobin",3), rep("Prediction",3))) 

p <- ggplot(data=df, aes(x=Inputdata, y=score, group=scoreType, shape = scoreType)) + geom_point(size=5) 
p <- p + ggtitle("My Title") 
p+stat_smooth(method="lm",se = FALSE) 

enter image description here

在這裏,您按評分的類型,讓GG的情節讓傳說爲您服務。 stat_smooth在這裏使用lm。