#' plot method for objects of class pauli
#'
#' @param x a pauli object
#' @param ... pass extra arguments
#'
#' @return A 2 x 2 layout of pauli frame scatter plots
#' @export
#'
#' @examples
#' pf <- pauli()
#' plot(pf)
plot.pauli <- function(x, ...){
#Set up plot function
plot_one <- function(y, main = main){#Test if any cells contain imaginary numbers
if (Im(y[[1]][[1]]) != 0 || Im(y[[2]][[1]]) != 0 || Im(y[[1]][[2]]) != 0 || Im(y[[2]][[2]]) != 0){
#Build data frame with one cell per row
y <- data.frame(Re = c(Re(y[[1]][[1]]), Re(y[[2]][[1]]),
Re(y[[1]][[2]]), Re(y[[2]][[2]])),
Img = c(Im(y[[1]][[1]]), Im(y[[2]][[1]]),
Im(y[[1]][[2]]), Im(y[[2]][[2]])))
#Plot data frame (x vs y)
plot0 <- plot(x = y[[1]], y = y[[2]], xlab = "Real", ylab = "Img", main = main, col = c("red", "red", "blue", "blue"), pch = c(1, 1, 4, 4), ...)
} else {
#Plot data frame (x vs y)
plot0 <- plot(x = y[[1]], y = y[[2]], xlab = "x", ylab = "y", main = main, ...)
}
}
#Set plot grid and plot frames
graphics::par(mfrow=c(2,2))
invisible(lapply(names(x), function(y)plot_one(x[[y]], main = y)))
}
#' plot method for object of class pauli_d
#'
#' @param x a pauli_d object
#' @param ... pass extra arguments
#'
#' @return A 2 x 2 layout of pauli_d frame scatter plots
#' @export
#'
#' @examples
#' pf <- pauli()
#' pf2 <- opop(pf, function(x)x^2 - 1)
#' plot(pf2)
plot.pauli_d <- function(x, ...){
#Set up plot function
plot_one <- function(y, main = main){#Test if any cells contain imaginary numbers
if (Im(y[[1]][[1]]) != 0 || Im(y[[2]][[1]]) != 0 || Im(y[[1]][[2]]) != 0 || Im(y[[2]][[2]]) != 0){
#Build data frame with one cell per row
y <- data.frame(Re = c(Re(y[[1]][[1]]), Re(y[[2]][[1]]),
Re(y[[1]][[2]]), Re(y[[2]][[2]])),
Img = c(Im(y[[1]][[1]]), Im(y[[2]][[1]]),
Im(y[[1]][[2]]), Im(y[[2]][[2]])))
#Plot data frame (x vs y)
plot0 <- plot(x = y[[1]], y = y[[2]], xlab = "Real", ylab = "Img", main = main, col = c("red", "red", "blue", "blue"), pch = c(1, 1, 4, 4), ...)
} else {
#Plot data frame (x vs y)
plot0 <- plot(x = y[[1]], y = y[[2]], xlab = "x", ylab = "y", main = main, ...)
}
}
#Set plot grid and plot frames
graphics::par(mfrow=c(2,2))
invisible(lapply(names(x), function(y)plot_one(x[[y]], main = y)))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.