Author: Dan Cloney
Date: 2024-02-18

# Plotting in conquestr

#### Dan Cloney

#### 2024-02-18

# Introduction

conquestr has two main types of plotting functions:

- Functions for rout files created from the `plot` command in ACER ConQuest. These plots are created using the generic function `conquestr::plotRout`. rout files are read in using the function `conquestr::ConQuestRout`.
- General plots, usually of the inputs or outputs of IRT estimation. These include for example:
  - Estimation history (conquestr::plotCqHist)
  - Wright maps based on system file (conquestr::plotItemMap)

# Example

## plotRout

This generic function, plotRout, will dispatch to specific methods depending on the class of the rout file. For example, in ConQuest if an ICC rout file is created, then when you call plotRout, the method plotRout.ICC will be called and an ICC will be returned.

    library(conquestr)
    myRout <- ConQuestRout()
    #> no rout file provided, loading the example rout file instead
    myPlot <- plotRout(myRout)
    myPlot

It is also to manually edit the returned object to do your own styling.

    library(gridExtra)
    myPlot_themed <- myPlot + ggplot2::theme_dark()
    myPlot_themed_new <- myPlot_themed
    # remove geom_point layer
    myPlot_themed_new$layers[[2]] <- NULL
    grid.arrange(myPlot_themed, myPlot_themed_new)

## General Plots

TODO here, add example of history plots. Especially with plot problems.

You can plot an arbitrary information function against a distribution of students - a so called information Wright map.

    myDeltaDots <- data.frame(
      id = c(1:10),
      itemid = paste0("item", 1:10),
      delta = rnorm(10)
    )

    MyTaus <- data.frame(
      id = c(2L, 10L),
      itemId = NA,
      step = c(1L, 1L),
      tau = rnorm(2)
    )

    myItemList <- makeItemList(deltaDot = myDeltaDots, tau = MyTaus)

    myPersons <- rnorm(500, 1, 1)
    informationWrightMap(myItems = myItemList, myAbilities = myPersons, minTheta = -6, maxTheta = 6)