Pairwise comparisons on a boxplot

Boxplot graphs, also known as box and whisker plots, offer a compelling way to visually display the distribution and summary statistics of a dataset. They present key descriptive statistics such as median, quartiles, and potential outliers, making them ideal for comparing data across different groups or identifying unusual data points. Understanding boxplot graphs is essential for data analysis. These graphs quickly reveal central tendency, spread, and skewness, providing valuable insights for decision-making. Their effectiveness in visualizing data makes them a staple in various fields, from finance and healthcare to engineering and social sciences.


Economist GGPlot Excel Paul Tol Black And White Solarized Stata Tableau Wall Street CanvasXpress
<html>

  <head>
    <!-- Include the CanvasXpress library in your HTML file -->
    <link rel="stylesheet" href="https://www.canvasxpress.org/dist/canvasXpress.css" type="text/css"/>
    <script src="https://www.canvasxpress.org/dist/canvasXpress.min.js"></script>
  </head>

  <body>

    <!-- Create a canvas element for the chart with the desired dimensions -->
    <div>
      <canvas id="canvasId" width="600" height="600"></canvas>
    </div>


    <!-- Create a script to initialize the chart -->
    <script>

      // Use a data frame (2D-array) for the graph
      var data = 

      // Create the configuration for the graph
      var config = {
       "graphType": "Boxplot",
       "graphOrientation": "vertical",
       "theme": "GGPlot",
       "groupingFactors": [
        "Species"
       ],
       "xAxis": [
        "Sepal.Width"
       ],
       "smpTitle": "Sepal.Width",
       "boxplotColor": "#00AFBB",
       "title": "Pairwise comparisons (geom_pwc) on a boxplot",
       "decorations": {
        "marker": [
         {
          "color": "black",
          "group": 0,
          "group2": 1,
          "type": "pwc",
          "variable": "Sepal.Width",
          "text": "<0.0001",
          "ymin": 4.85,
          "ymax": 4.97
         },
         {
          "color": "black",
          "group": 0,
          "group2": 2,
          "type": "pwc",
          "variable": "Sepal.Width",
          "text": "<0.0001",
          "ymin": 5.3,
          "ymax": 5.42
         },
         {
          "color": "black",
          "group": 1,
          "group2": 2,
          "type": "pwc",
          "variable": "Sepal.Width",
          "text": "0.0018",
          "ymin": 5.75,
          "ymax": 5.87
         }
        ]
       }
      }

      // Event used to create graph (optional)
      var events = false

      // Call the CanvasXpress function to create the graph
      var cX = new CanvasXpress("canvasId", data, config, events);

    </script>

  </body>

</html>
<html>

  <head>
    <!-- Include the CanvasXpress library in your HTML file -->
    <link rel="stylesheet" href="https://www.canvasxpress.org/dist/canvasXpress.css" type="text/css"/>
    <script src="https://www.canvasxpress.org/dist/canvasXpress.min.js"></script>
  </head>

  <body>

    <!-- Create a canvas element for the chart with the desired dimensions -->
    <div>
      <canvas id="canvasId" width="600" height="600"></canvas>
    </div>


    <!-- Create a script to initialize the chart -->
    <script>

      // Create the data for the graph
      var data = {
         "y" : {
            "vars" : [
               "Sepal.Width"
            ],
            "smps" : [
               "Var1",
               "Var2",
               "Var3",
               "Var4",
               "Var5",
               "Var6",
               "Var7",
               "Var8",
               "Var9",
               "Var10",
               "Var11",
               "Var12",
               "Var13",
               "Var14",
               "Var15",
               "Var16",
               "Var17",
               "Var18",
               "Var19",
               "Var20",
               "Var21",
               "Var22",
               "Var23",
               "Var24",
               "Var25",
               "Var26",
               "Var27",
               "Var28",
               "Var29",
               "Var30",
               "Var31",
               "Var32",
               "Var33",
               "Var34",
               "Var35",
               "Var36",
               "Var37",
               "Var38",
               "Var39",
               "Var40",
               "Var41",
               "Var42",
               "Var43",
               "Var44",
               "Var45",
               "Var46",
               "Var47",
               "Var48",
               "Var49",
               "Var50",
               "Var51",
               "Var52",
               "Var53",
               "Var54",
               "Var55",
               "Var56",
               "Var57",
               "Var58",
               "Var59",
               "Var60",
               "Var61",
               "Var62",
               "Var63",
               "Var64",
               "Var65",
               "Var66",
               "Var67",
               "Var68",
               "Var69",
               "Var70",
               "Var71",
               "Var72",
               "Var73",
               "Var74",
               "Var75",
               "Var76",
               "Var77",
               "Var78",
               "Var79",
               "Var80",
               "Var81",
               "Var82",
               "Var83",
               "Var84",
               "Var85",
               "Var86",
               "Var87",
               "Var88",
               "Var89",
               "Var90",
               "Var91",
               "Var92",
               "Var93",
               "Var94",
               "Var95",
               "Var96",
               "Var97",
               "Var98",
               "Var99",
               "Var100",
               "Var101",
               "Var102",
               "Var103",
               "Var104",
               "Var105",
               "Var106",
               "Var107",
               "Var108",
               "Var109",
               "Var110",
               "Var111",
               "Var112",
               "Var113",
               "Var114",
               "Var115",
               "Var116",
               "Var117",
               "Var118",
               "Var119",
               "Var120",
               "Var121",
               "Var122",
               "Var123",
               "Var124",
               "Var125",
               "Var126",
               "Var127",
               "Var128",
               "Var129",
               "Var130",
               "Var131",
               "Var132",
               "Var133",
               "Var134",
               "Var135",
               "Var136",
               "Var137",
               "Var138",
               "Var139",
               "Var140",
               "Var141",
               "Var142",
               "Var143",
               "Var144",
               "Var145",
               "Var146",
               "Var147",
               "Var148",
               "Var149",
               "Var150"
            ],
            "data" : [
               [
                  3.5,
                  3,
                  3.2,
                  3.1,
                  3.6,
                  3.9,
                  3.4,
                  3.4,
                  2.9,
                  3.1,
                  3.7,
                  3.4,
                  3,
                  3,
                  4,
                  4.4,
                  3.9,
                  3.5,
                  3.8,
                  3.8,
                  3.4,
                  3.7,
                  3.6,
                  3.3,
                  3.4,
                  3,
                  3.4,
                  3.5,
                  3.4,
                  3.2,
                  3.1,
                  3.4,
                  4.1,
                  4.2,
                  3.1,
                  3.2,
                  3.5,
                  3.6,
                  3,
                  3.4,
                  3.5,
                  2.3,
                  3.2,
                  3.5,
                  3.8,
                  3,
                  3.8,
                  3.2,
                  3.7,
                  3.3,
                  3.2,
                  3.2,
                  3.1,
                  2.3,
                  2.8,
                  2.8,
                  3.3,
                  2.4,
                  2.9,
                  2.7,
                  2,
                  3,
                  2.2,
                  2.9,
                  2.9,
                  3.1,
                  3,
                  2.7,
                  2.2,
                  2.5,
                  3.2,
                  2.8,
                  2.5,
                  2.8,
                  2.9,
                  3,
                  2.8,
                  3,
                  2.9,
                  2.6,
                  2.4,
                  2.4,
                  2.7,
                  2.7,
                  3,
                  3.4,
                  3.1,
                  2.3,
                  3,
                  2.5,
                  2.6,
                  3,
                  2.6,
                  2.3,
                  2.7,
                  3,
                  2.9,
                  2.9,
                  2.5,
                  2.8,
                  3.3,
                  2.7,
                  3,
                  2.9,
                  3,
                  3,
                  2.5,
                  2.9,
                  2.5,
                  3.6,
                  3.2,
                  2.7,
                  3,
                  2.5,
                  2.8,
                  3.2,
                  3,
                  3.8,
                  2.6,
                  2.2,
                  3.2,
                  2.8,
                  2.8,
                  2.7,
                  3.3,
                  3.2,
                  2.8,
                  3,
                  2.8,
                  3,
                  2.8,
                  3.8,
                  2.8,
                  2.8,
                  2.6,
                  3,
                  3.4,
                  3.1,
                  3,
                  3.1,
                  3.1,
                  3.1,
                  2.7,
                  3.2,
                  3.3,
                  3,
                  2.5,
                  3,
                  3.4,
                  3
               ]
            ]
         },
         "x" : {
            "Species" : [
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "setosa",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "versicolor",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica",
               "virginica"
            ]
         }
      }

      // Create the configuration for the graph
      var config = {
       "graphType": "Boxplot",
       "graphOrientation": "vertical",
       "theme": "GGPlot",
       "groupingFactors": [
        "Species"
       ],
       "xAxis": [
        "Sepal.Width"
       ],
       "smpTitle": "Sepal.Width",
       "boxplotColor": "#00AFBB",
       "title": "Pairwise comparisons (geom_pwc) on a boxplot",
       "decorations": {
        "marker": [
         {
          "color": "black",
          "group": 0,
          "group2": 1,
          "type": "pwc",
          "variable": "Sepal.Width",
          "text": "<0.0001",
          "ymin": 4.85,
          "ymax": 4.97
         },
         {
          "color": "black",
          "group": 0,
          "group2": 2,
          "type": "pwc",
          "variable": "Sepal.Width",
          "text": "<0.0001",
          "ymin": 5.3,
          "ymax": 5.42
         },
         {
          "color": "black",
          "group": 1,
          "group2": 2,
          "type": "pwc",
          "variable": "Sepal.Width",
          "text": "0.0018",
          "ymin": 5.75,
          "ymax": 5.87
         }
        ]
       }
      }

      // Event used to create graph (optional)
      var events = false

            // Call the CanvasXpress function to create the graph
      var cX = new CanvasXpress("canvasId", data, config, events);

    </script>

  </body>

</html>
library(canvasXpress)
y=read.table("https://www.canvasxpress.org/data/r/cX-boxplot23-dat.txt", header=TRUE, sep="\t", quote="", row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE)
x=read.table("https://www.canvasxpress.org/data/r/cX-boxplot23-smp.txt", header=TRUE, sep="\t", quote="", row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE)
canvasXpress(
data=y,
smpAnnot=x,
boxplotColor="#00AFBB",
decorations=list(marker=list(list(color="black", group=0, group2=1, text="<0.0001", type="pwc", variable="Sepal.Width", ymax=4.97, ymin=4.85), list(color="black", group=0, group2=2, text="<0.0001", type="pwc", variable="Sepal.Width", ymax=5.42, ymin=5.3), list(color="black", group=1, group2=2, text=0.0018, type="pwc", variable="Sepal.Width", ymax=5.87, ymin=5.75))),
graphOrientation="vertical",
graphType="Boxplot",
groupingFactors=list("Species"),
smpTitle="Sepal.Width",
theme="GGPlot",
title="Pairwise comparisons (geom_pwc) on a boxplot",
xAxis=list("Sepal.Width")
)
from canvasxpress.canvas import CanvasXpress
from canvasxpress.plot import show_in_browser

if __name__ == "__main__":
  # Define the chart with its data and configuration
  chart: CanvasXpress = CanvasXpress(
    render_to = "boxplot23",
    data = {
      "y": {
        "vars": ["Sepal.Width"],
        "smps": ["Var1", "Var2", "Var3", "Var4", "Var5", "Var6", "Var7", "Var8", "Var9", "Var10", "Var11", "Var12", "Var13", "Var14", "Var15", "Var16", "Var17", "Var18", "Var19", "Var20", "Var21", "Var22", "Var23", "Var24", "Var25", "Var26", "Var27", "Var28", "Var29", "Var30", "Var31", "Var32", "Var33", "Var34", "Var35", "Var36", "Var37", "Var38", "Var39", "Var40", "Var41", "Var42", "Var43", "Var44", "Var45", "Var46", "Var47", "Var48", "Var49", "Var50", "Var51", "Var52", "Var53", "Var54", "Var55", "Var56", "Var57", "Var58", "Var59", "Var60", "Var61", "Var62", "Var63", "Var64", "Var65", "Var66", "Var67", "Var68", "Var69", "Var70", "Var71", "Var72", "Var73", "Var74", "Var75", "Var76", "Var77", "Var78", "Var79", "Var80", "Var81", "Var82", "Var83", "Var84", "Var85", "Var86", "Var87", "Var88", "Var89", "Var90", "Var91", "Var92", "Var93", "Var94", "Var95", "Var96", "Var97", "Var98", "Var99", "Var100", "Var101", "Var102", "Var103", "Var104", "Var105", "Var106", "Var107", "Var108", "Var109", "Var110", "Var111", "Var112", "Var113", "Var114", "Var115", "Var116", "Var117", "Var118", "Var119", "Var120", "Var121", "Var122", "Var123", "Var124", "Var125", "Var126", "Var127", "Var128", "Var129", "Var130", "Var131", "Var132", "Var133", "Var134", "Var135", "Var136", "Var137", "Var138", "Var139", "Var140", "Var141", "Var142", "Var143", "Var144", "Var145", "Var146", "Var147", "Var148", "Var149", "Var150"],
        "data": [
          [3.5, 3, 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1, 3.7, 3.4, 3, 3, 4, 4.4, 3.9, 3.5, 3.8, 3.8, 3.4, 3.7, 3.6, 3.3, 3.4, 3, 3.4, 3.5, 3.4, 3.2, 3.1, 3.4, 4.1, 4.2, 3.1, 3.2, 3.5, 3.6, 3, 3.4, 3.5, 2.3, 3.2, 3.5, 3.8, 3, 3.8, 3.2, 3.7, 3.3, 3.2, 3.2, 3.1, 2.3, 2.8, 2.8, 3.3, 2.4, 2.9, 2.7, 2, 3, 2.2, 2.9, 2.9, 3.1, 3, 2.7, 2.2, 2.5, 3.2, 2.8, 2.5, 2.8, 2.9, 3, 2.8, 3, 2.9, 2.6, 2.4, 2.4, 2.7, 2.7, 3, 3.4, 3.1, 2.3, 3, 2.5, 2.6, 3, 2.6, 2.3, 2.7, 3, 2.9, 2.9, 2.5, 2.8, 3.3, 2.7, 3, 2.9, 3, 3, 2.5, 2.9, 2.5, 3.6, 3.2, 2.7, 3, 2.5, 2.8, 3.2, 3, 3.8, 2.6, 2.2, 3.2, 2.8, 2.8, 2.7, 3.3, 3.2, 2.8, 3, 2.8, 3, 2.8, 3.8, 2.8, 2.8, 2.6, 3, 3.4, 3.1, 3, 3.1, 3.1, 3.1, 2.7, 3.2, 3.3, 3, 2.5, 3, 3.4, 3]
        ]
      },
      "x": {
        "Species": ["setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica"]
      }
    },
    config = {
      "graphType": "Boxplot",
      "graphOrientation": "vertical",
      "theme": "GGPlot",
      "groupingFactors": ["Species"],
      "xAxis": ["Sepal.Width"],
      "smpTitle": "Sepal.Width",
      "boxplotColor": "#00AFBB",
      "title": "Pairwise comparisons (geom_pwc) on a boxplot",
      "decorations": {
        "marker": [
          {
            "color": "black",
            "group": 0,
            "group2": 1,
            "type": "pwc",
            "variable": "Sepal.Width",
            "text": "<0.0001",
            "ymin": 4.85,
            "ymax": 4.97
          },
          {
            "color": "black",
            "group": 0,
            "group2": 2,
            "type": "pwc",
            "variable": "Sepal.Width",
            "text": "<0.0001",
            "ymin": 5.3,
            "ymax": 5.42
          },
          {
            "color": "black",
            "group": 1,
            "group2": 2,
            "type": "pwc",
            "variable": "Sepal.Width",
            "text": "0.0018",
            "ymin": 5.75,
            "ymax": 5.87
          }
        ]
      }
    },
    width = 600,
    height = 600
  )

  # Display the chart in its own Web page
  show_in_browser(chart)
Run this notebook: Open in Binder
from canvasxpress.canvas import CanvasXpress
from canvasxpress.plot import graph

graph(
  CanvasXpress(
    render_to = "boxplot23",
    data = {
      "y": {
        "vars": ["Sepal.Width"],
        "smps": ["Var1", "Var2", "Var3", "Var4", "Var5", "Var6", "Var7", "Var8", "Var9", "Var10", "Var11", "Var12", "Var13", "Var14", "Var15", "Var16", "Var17", "Var18", "Var19", "Var20", "Var21", "Var22", "Var23", "Var24", "Var25", "Var26", "Var27", "Var28", "Var29", "Var30", "Var31", "Var32", "Var33", "Var34", "Var35", "Var36", "Var37", "Var38", "Var39", "Var40", "Var41", "Var42", "Var43", "Var44", "Var45", "Var46", "Var47", "Var48", "Var49", "Var50", "Var51", "Var52", "Var53", "Var54", "Var55", "Var56", "Var57", "Var58", "Var59", "Var60", "Var61", "Var62", "Var63", "Var64", "Var65", "Var66", "Var67", "Var68", "Var69", "Var70", "Var71", "Var72", "Var73", "Var74", "Var75", "Var76", "Var77", "Var78", "Var79", "Var80", "Var81", "Var82", "Var83", "Var84", "Var85", "Var86", "Var87", "Var88", "Var89", "Var90", "Var91", "Var92", "Var93", "Var94", "Var95", "Var96", "Var97", "Var98", "Var99", "Var100", "Var101", "Var102", "Var103", "Var104", "Var105", "Var106", "Var107", "Var108", "Var109", "Var110", "Var111", "Var112", "Var113", "Var114", "Var115", "Var116", "Var117", "Var118", "Var119", "Var120", "Var121", "Var122", "Var123", "Var124", "Var125", "Var126", "Var127", "Var128", "Var129", "Var130", "Var131", "Var132", "Var133", "Var134", "Var135", "Var136", "Var137", "Var138", "Var139", "Var140", "Var141", "Var142", "Var143", "Var144", "Var145", "Var146", "Var147", "Var148", "Var149", "Var150"],
        "data": [
          [3.5, 3, 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1, 3.7, 3.4, 3, 3, 4, 4.4, 3.9, 3.5, 3.8, 3.8, 3.4, 3.7, 3.6, 3.3, 3.4, 3, 3.4, 3.5, 3.4, 3.2, 3.1, 3.4, 4.1, 4.2, 3.1, 3.2, 3.5, 3.6, 3, 3.4, 3.5, 2.3, 3.2, 3.5, 3.8, 3, 3.8, 3.2, 3.7, 3.3, 3.2, 3.2, 3.1, 2.3, 2.8, 2.8, 3.3, 2.4, 2.9, 2.7, 2, 3, 2.2, 2.9, 2.9, 3.1, 3, 2.7, 2.2, 2.5, 3.2, 2.8, 2.5, 2.8, 2.9, 3, 2.8, 3, 2.9, 2.6, 2.4, 2.4, 2.7, 2.7, 3, 3.4, 3.1, 2.3, 3, 2.5, 2.6, 3, 2.6, 2.3, 2.7, 3, 2.9, 2.9, 2.5, 2.8, 3.3, 2.7, 3, 2.9, 3, 3, 2.5, 2.9, 2.5, 3.6, 3.2, 2.7, 3, 2.5, 2.8, 3.2, 3, 3.8, 2.6, 2.2, 3.2, 2.8, 2.8, 2.7, 3.3, 3.2, 2.8, 3, 2.8, 3, 2.8, 3.8, 2.8, 2.8, 2.6, 3, 3.4, 3.1, 3, 3.1, 3.1, 3.1, 2.7, 3.2, 3.3, 3, 2.5, 3, 3.4, 3]
        ]
      },
      "x": {
        "Species": ["setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica"]
      }
    },
    config = {
      "graphType": "Boxplot",
      "graphOrientation": "vertical",
      "theme": "GGPlot",
      "groupingFactors": ["Species"],
      "xAxis": ["Sepal.Width"],
      "smpTitle": "Sepal.Width",
      "boxplotColor": "#00AFBB",
      "title": "Pairwise comparisons (geom_pwc) on a boxplot",
      "decorations": {
        "marker": [
          {
            "color": "black",
            "group": 0,
            "group2": 1,
            "type": "pwc",
            "variable": "Sepal.Width",
            "text": "<0.0001",
            "ymin": 4.85,
            "ymax": 4.97
          },
          {
            "color": "black",
            "group": 0,
            "group2": 2,
            "type": "pwc",
            "variable": "Sepal.Width",
            "text": "<0.0001",
            "ymin": 5.3,
            "ymax": 5.42
          },
          {
            "color": "black",
            "group": 1,
            "group2": 2,
            "type": "pwc",
            "variable": "Sepal.Width",
            "text": "0.0018",
            "ymin": 5.75,
            "ymax": 5.87
          }
        ]
      }
    },
    width = 600,
    height = 600
  )
)
using CanvasXpress

canvasxpress(Dict(
  "y" => Dict(
    "vars" => ["Sepal.Width"],
    "smps" => ["Var1", "Var2", "Var3", "Var4", "Var5", "Var6", "Var7", "Var8", "Var9", "Var10", "Var11", "Var12", "Var13", "Var14", "Var15", "Var16", "Var17", "Var18", "Var19", "Var20", "Var21", "Var22", "Var23", "Var24", "Var25", "Var26", "Var27", "Var28", "Var29", "Var30", "Var31", "Var32", "Var33", "Var34", "Var35", "Var36", "Var37", "Var38", "Var39", "Var40", "Var41", "Var42", "Var43", "Var44", "Var45", "Var46", "Var47", "Var48", "Var49", "Var50", "Var51", "Var52", "Var53", "Var54", "Var55", "Var56", "Var57", "Var58", "Var59", "Var60", "Var61", "Var62", "Var63", "Var64", "Var65", "Var66", "Var67", "Var68", "Var69", "Var70", "Var71", "Var72", "Var73", "Var74", "Var75", "Var76", "Var77", "Var78", "Var79", "Var80", "Var81", "Var82", "Var83", "Var84", "Var85", "Var86", "Var87", "Var88", "Var89", "Var90", "Var91", "Var92", "Var93", "Var94", "Var95", "Var96", "Var97", "Var98", "Var99", "Var100", "Var101", "Var102", "Var103", "Var104", "Var105", "Var106", "Var107", "Var108", "Var109", "Var110", "Var111", "Var112", "Var113", "Var114", "Var115", "Var116", "Var117", "Var118", "Var119", "Var120", "Var121", "Var122", "Var123", "Var124", "Var125", "Var126", "Var127", "Var128", "Var129", "Var130", "Var131", "Var132", "Var133", "Var134", "Var135", "Var136", "Var137", "Var138", "Var139", "Var140", "Var141", "Var142", "Var143", "Var144", "Var145", "Var146", "Var147", "Var148", "Var149", "Var150"],
    "data" => [
      [3.5, 3, 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1, 3.7, 3.4, 3, 3, 4, 4.4, 3.9, 3.5, 3.8, 3.8, 3.4, 3.7, 3.6, 3.3, 3.4, 3, 3.4, 3.5, 3.4, 3.2, 3.1, 3.4, 4.1, 4.2, 3.1, 3.2, 3.5, 3.6, 3, 3.4, 3.5, 2.3, 3.2, 3.5, 3.8, 3, 3.8, 3.2, 3.7, 3.3, 3.2, 3.2, 3.1, 2.3, 2.8, 2.8, 3.3, 2.4, 2.9, 2.7, 2, 3, 2.2, 2.9, 2.9, 3.1, 3, 2.7, 2.2, 2.5, 3.2, 2.8, 2.5, 2.8, 2.9, 3, 2.8, 3, 2.9, 2.6, 2.4, 2.4, 2.7, 2.7, 3, 3.4, 3.1, 2.3, 3, 2.5, 2.6, 3, 2.6, 2.3, 2.7, 3, 2.9, 2.9, 2.5, 2.8, 3.3, 2.7, 3, 2.9, 3, 3, 2.5, 2.9, 2.5, 3.6, 3.2, 2.7, 3, 2.5, 2.8, 3.2, 3, 3.8, 2.6, 2.2, 3.2, 2.8, 2.8, 2.7, 3.3, 3.2, 2.8, 3, 2.8, 3, 2.8, 3.8, 2.8, 2.8, 2.6, 3, 3.4, 3.1, 3, 3.1, 3.1, 3.1, 2.7, 3.2, 3.3, 3, 2.5, 3, 3.4, 3]
    ]
  ),
  "x" => Dict(
    "Species" => ["setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "setosa", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "versicolor", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica", "virginica"]
  )
);
  graphType = "Boxplot",
  graphOrientation = "vertical",
  theme = "GGPlot",
  groupingFactors = ["Species"],
  xAxis = ["Sepal.Width"],
  smpTitle = "Sepal.Width",
  boxplotColor = "#00AFBB",
  title = "Pairwise comparisons (geom_pwc) on a boxplot",
  decorations = Dict(
    "marker" => [
      Dict(
        "color" => "black",
        "group" => 0,
        "group2" => 1,
        "type" => "pwc",
        "variable" => "Sepal.Width",
        "text" => "<0.0001",
        "ymin" => 4.85,
        "ymax" => 4.97
      ),
      Dict(
        "color" => "black",
        "group" => 0,
        "group2" => 2,
        "type" => "pwc",
        "variable" => "Sepal.Width",
        "text" => "<0.0001",
        "ymin" => 5.3,
        "ymax" => 5.42
      ),
      Dict(
        "color" => "black",
        "group" => 1,
        "group2" => 2,
        "type" => "pwc",
        "variable" => "Sepal.Width",
        "text" => "0.0018",
        "ymin" => 5.75,
        "ymax" => 5.87
      )
    ]
  )
)
⇧