| Title: | Visualize Contingency Tables Using Kite-Square Plots | 
| Version: | 0.0.2 | 
| Description: | Create a kite-square plot for contingency tables using 'ggplot2', to display their relevant quantities in a single figure (marginal, conditional, expected, observed, chi-squared). The plot resembles a flying kite inside a square if the variables are independent, and deviates from this the more dependence exists. | 
| License: | LGPL (≥ 3) | 
| Encoding: | UTF-8 | 
| URL: | https://github.com/HUGLeipzig/kitesquare | 
| BugReports: | https://github.com/HUGLeipzig/kitesquare/issues | 
| RoxygenNote: | 7.3.2 | 
| VignetteBuilder: | quarto | 
| Imports: | tidyr, dplyr, ggplot2, ggh4x, scales, rlang | 
| Suggests: | knitr, quarto | 
| Config/Needs/website: | quarto | 
| NeedsCompilation: | no | 
| Packaged: | 2025-03-19 12:42:45 UTC; Wiedenhoef | 
| Author: | John Wiedenhöft  | 
| Maintainer: | John Wiedenhöft <john.wiedenhoeft@medizin.uni-leipzig.de> | 
| Repository: | CRAN | 
| Date/Publication: | 2025-03-20 13:50:09 UTC | 
Create a kite-square plot
Description
Given a data frame or tibble, creates a kite-square plot to visualize the contingency table of two discrete variables.
Usage
kitesquare(
  df,
  x,
  y,
  obs,
  normalize = FALSE,
  full_range = FALSE,
  center_x = TRUE,
  center_y = TRUE,
  center = NULL,
  fill_x = FALSE,
  fill_y = FALSE,
  fill = NULL,
  kite = TRUE,
  spars = TRUE,
  square = TRUE,
  chi2 = TRUE,
  bars_x = TRUE,
  bars_y = TRUE,
  bars = NULL,
  intersect_x = TRUE,
  intersect_y = TRUE,
  intersect = NULL,
  color_x = "#e31a1c",
  color_y = "#1f78b4",
  kite_color = "black",
  square_color = "black",
  spars_color = "black",
  chi2_color = "#bebebe",
  border_color = "black",
  alpha_fill = 0.3,
  alpha_chi2 = 0.3,
  alpha = NULL,
  pointsize = 3,
  linewidth = 1,
  whisker_length = 0.05,
  extend_whiskers = FALSE,
  dodge_x = 2,
  ...
)
Arguments
df | 
 A tibble or data frame of observations.  | 
x, y | 
 Name of the variable in   | 
obs | 
 Name of observation counts in   | 
normalize | 
 Should values te normalized to probabilities and expressed in percent?  | 
full_range | 
 If   | 
center_x, center_y, center | 
 Should a binary x or y variable be centered (axis reversed) so that the spars meet?   | 
fill_x, fill_y, fill | 
 Should the space between x or y bars and the axis be filled?   | 
kite, square, spars, chi2 | 
 Should the kite, square, spars and   | 
bars_x, bars_y, bars | 
 Should the bars for the x and y variables be drawn?   | 
intersect_x, intersect_y, intersect | 
 Should the intersect positions for x and y variables with their axes be drawn?   | 
color_x, color_y | 
 Colors for x and y.  | 
kite_color, square_color, spars_color, chi2_color | 
 Color of the kite, square, spars and   | 
border_color | 
 Color for the border around each cell.  | 
alpha_fill, alpha_chi2, alpha | 
 Transparency for fill and   | 
pointsize | 
 The point size for intersects and spars.  | 
linewidth | 
 The line width for bars and spars.  | 
whisker_length | 
 The length of bar whiskers.  | 
extend_whiskers | 
 Should the bar whiskers be extended to wrap around the   | 
dodge_x | 
 The number of levels the x axis labels should dodge.  | 
... | 
 Further arguments passed to ggplot2::facet_grid().  | 
Value
A ggplot object, with an extra $table key. The latter contains the tibble of coordinates created internally for plotting.
Examples
df <- dplyr::tibble(
  X=c('A', 'A', 'B', 'B', 'B'),
  Y=c('U', 'V', 'U', 'V', 'V'),
  count=c(30,15,30,70,65))
kitesquare(df, X, Y, count)
kitesquare(df, X, Y, count, normalize=TRUE, center_x=FALSE)