In [ ]:
# Require the packages
require(ggplot2)
library(repr)

options(repr.plot.width=10.5, repr.plot.height=4.5)

In [ ]:
data <- read.csv("data/semisupervised_results.csv")
names(data) <- c("experiment_name", "experiment_kind", "accuracy")
data$experiment_name <- factor(data$experiment_name,
                               levels=c("sensem_before", "sensem_after", "semeval_before", "semeval_after"))
levels(data$experiment_kind) <- c("Bag-of-Words &\nLogistic Regression",
                                  "Word Embeddings &\nMultilayer Perceptron",
                                  "Word Embeddings and PoS &\nMultilayer Perceptron")

In [ ]:
p <- ggplot(data, aes(experiment_name, accuracy))
p <- p + stat_boxplot(geom="errorbar")
p <- p + facet_wrap(~ experiment_kind)
p <- p + geom_boxplot(aes(fill=experiment_name))
p <- p + coord_cartesian(ylim=c(0, 1.0)) + scale_y_continuous(breaks=seq(0, 1, 0.1))
p <- p + labs(title="Semi-supervised Experiments", y="Accuracy")
p <- p + scale_fill_manual(name="Experiment",
                           values = c("steelblue1", "steelblue4", "darkorange1", "darkorange4"),
                           labels=c("Spanish WSD Accuracy\nBefore Self-taught Learning",
                               "Spanish WSD Accuracy\nAfter Self-taught Learning",
                               "English WSD Accuracy\nBefore Self-taught Learning",
                               "English WSD Accuracy\nAfter Self-taught Learning"))
p <- p + theme(
      plot.title=element_text(size=15, face="bold", margin=margin(10, 0, 10, 0), vjust=1, lineheight=0.6),
      strip.text.x=element_text(size=10),
      axis.title.x=element_blank(),
      axis.ticks.x=element_blank(),
      axis.text.x=element_blank(),
      axis.title.y=element_text(size=12, margin=margin(0, 10, 0, 0)),
      legend.title=element_text(face="bold", size=13),
      legend.text=element_text(size=11),
      legend.key.height=unit(2.75,"line")
  )
p

In [ ]:
# Save the plot
ggsave("plots/semisupervised_results.png", plot=p, width=10.5, height=4.5)

In [ ]: