2016-01-13 3 views
-1

Я хочу создать один граф участка с Roundrobin и Prediction точками, без цветов, где Roundrobin и Prediction типа точек различны, и у него есть легенда. Я хотел бы добавить строку наилучшего соответствия для результатов.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

Возможно ли иметь разные точки в легенде? 'legend (..., pch = (9,19), c (« Round-robin »,« Prediction »), fill = c (« зеленый »,« белый »))' – xeon123

+0

@ xeon123 см. обновление, HTH – Jaap

0

Вы должны заглянуть в пакет ggplot2 для печати. Возможно, вам не нужны данные из трех точек, которые вы предоставили, но они делают гораздо более приятные сюжеты, чем по умолчанию.

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.

Смежные вопросы