Violin plot with Bonferroni-adjusted Wilcoxon tests


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",
         "groupingFactors" : [
            "Species"
         ],
         "xAxis" : [
            "Sepal.Length"
         ],
         "xAxisTitle" : "Sepal.Length",
         "smpTitle" : "Species",
         "smpTitleFontStyle" : "bold",
         "axisTitleFontStyle" : "bold",
         "axisAlgorithm" : "rPretty",
         "smpTextRotate" : 0,
         "showLegend" : false,
         "colorBy" : "Species",
         "title" : "Iris sepal length by species (Wilcoxon, Bonferroni-adjusted)",
         "showStatInference" : true,
         "statInference" : {
            "correction" : {
               "method" : "bonferroni"
            },
            "annotate" : "padj",
            "comparisons" : [
               {
                  "groups" : [
                     "setosa",
                     "versicolor"
                  ],
                  "p" : 8.34582714594074e-14
               },
               {
                  "groups" : [
                     "versicolor",
                     "virginica"
                  ],
                  "p" : 5.8690064106642e-07
               },
               {
                  "groups" : [
                     "setosa",
                     "virginica"
                  ],
                  "p" : 6.39669906939659e-17
               }
            ]
         },
         "showViolinBoxplot" : true,
         "showBoxplotIfViolin" : true,
         "colorScheme" : "Pastel"
      }

      // 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.Length"
            ],
            "smps" : [
               "Obs1",
               "Obs2",
               "Obs3",
               "Obs4",
               "Obs5",
               "Obs6",
               "Obs7",
               "Obs8",
               "Obs9",
               "Obs10",
               "Obs11",
               "Obs12",
               "Obs13",
               "Obs14",
               "Obs15",
               "Obs16",
               "Obs17",
               "Obs18",
               "Obs19",
               "Obs20",
               "Obs21",
               "Obs22",
               "Obs23",
               "Obs24",
               "Obs25",
               "Obs26",
               "Obs27",
               "Obs28",
               "Obs29",
               "Obs30",
               "Obs31",
               "Obs32",
               "Obs33",
               "Obs34",
               "Obs35",
               "Obs36",
               "Obs37",
               "Obs38",
               "Obs39",
               "Obs40",
               "Obs41",
               "Obs42",
               "Obs43",
               "Obs44",
               "Obs45",
               "Obs46",
               "Obs47",
               "Obs48",
               "Obs49",
               "Obs50",
               "Obs51",
               "Obs52",
               "Obs53",
               "Obs54",
               "Obs55",
               "Obs56",
               "Obs57",
               "Obs58",
               "Obs59",
               "Obs60",
               "Obs61",
               "Obs62",
               "Obs63",
               "Obs64",
               "Obs65",
               "Obs66",
               "Obs67",
               "Obs68",
               "Obs69",
               "Obs70",
               "Obs71",
               "Obs72",
               "Obs73",
               "Obs74",
               "Obs75",
               "Obs76",
               "Obs77",
               "Obs78",
               "Obs79",
               "Obs80",
               "Obs81",
               "Obs82",
               "Obs83",
               "Obs84",
               "Obs85",
               "Obs86",
               "Obs87",
               "Obs88",
               "Obs89",
               "Obs90",
               "Obs91",
               "Obs92",
               "Obs93",
               "Obs94",
               "Obs95",
               "Obs96",
               "Obs97",
               "Obs98",
               "Obs99",
               "Obs100",
               "Obs101",
               "Obs102",
               "Obs103",
               "Obs104",
               "Obs105",
               "Obs106",
               "Obs107",
               "Obs108",
               "Obs109",
               "Obs110",
               "Obs111",
               "Obs112",
               "Obs113",
               "Obs114",
               "Obs115",
               "Obs116",
               "Obs117",
               "Obs118",
               "Obs119",
               "Obs120",
               "Obs121",
               "Obs122",
               "Obs123",
               "Obs124",
               "Obs125",
               "Obs126",
               "Obs127",
               "Obs128",
               "Obs129",
               "Obs130",
               "Obs131",
               "Obs132",
               "Obs133",
               "Obs134",
               "Obs135",
               "Obs136",
               "Obs137",
               "Obs138",
               "Obs139",
               "Obs140",
               "Obs141",
               "Obs142",
               "Obs143",
               "Obs144",
               "Obs145",
               "Obs146",
               "Obs147",
               "Obs148",
               "Obs149",
               "Obs150"
            ],
            "data" : [
               [
                  5.1,
                  4.9,
                  4.7,
                  4.6,
                  5,
                  5.4,
                  4.6,
                  5,
                  4.4,
                  4.9,
                  5.4,
                  4.8,
                  4.8,
                  4.3,
                  5.8,
                  5.7,
                  5.4,
                  5.1,
                  5.7,
                  5.1,
                  5.4,
                  5.1,
                  4.6,
                  5.1,
                  4.8,
                  5,
                  5,
                  5.2,
                  5.2,
                  4.7,
                  4.8,
                  5.4,
                  5.2,
                  5.5,
                  4.9,
                  5,
                  5.5,
                  4.9,
                  4.4,
                  5.1,
                  5,
                  4.5,
                  4.4,
                  5,
                  5.1,
                  4.8,
                  5.1,
                  4.6,
                  5.3,
                  5,
                  7,
                  6.4,
                  6.9,
                  5.5,
                  6.5,
                  5.7,
                  6.3,
                  4.9,
                  6.6,
                  5.2,
                  5,
                  5.9,
                  6,
                  6.1,
                  5.6,
                  6.7,
                  5.6,
                  5.8,
                  6.2,
                  5.6,
                  5.9,
                  6.1,
                  6.3,
                  6.1,
                  6.4,
                  6.6,
                  6.8,
                  6.7,
                  6,
                  5.7,
                  5.5,
                  5.5,
                  5.8,
                  6,
                  5.4,
                  6,
                  6.7,
                  6.3,
                  5.6,
                  5.5,
                  5.5,
                  6.1,
                  5.8,
                  5,
                  5.6,
                  5.7,
                  5.7,
                  6.2,
                  5.1,
                  5.7,
                  6.3,
                  5.8,
                  7.1,
                  6.3,
                  6.5,
                  7.6,
                  4.9,
                  7.3,
                  6.7,
                  7.2,
                  6.5,
                  6.4,
                  6.8,
                  5.7,
                  5.8,
                  6.4,
                  6.5,
                  7.7,
                  7.7,
                  6,
                  6.9,
                  5.6,
                  7.7,
                  6.3,
                  6.7,
                  7.2,
                  6.2,
                  6.1,
                  6.4,
                  7.2,
                  7.4,
                  7.9,
                  6.4,
                  6.3,
                  6.1,
                  7.7,
                  6.3,
                  6.4,
                  6,
                  6.9,
                  6.7,
                  6.9,
                  5.8,
                  6.8,
                  6.7,
                  6.7,
                  6.3,
                  6.5,
                  6.2,
                  5.9
               ]
            ]
         },
         "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",
         "groupingFactors" : [
            "Species"
         ],
         "xAxis" : [
            "Sepal.Length"
         ],
         "xAxisTitle" : "Sepal.Length",
         "smpTitle" : "Species",
         "smpTitleFontStyle" : "bold",
         "axisTitleFontStyle" : "bold",
         "axisAlgorithm" : "rPretty",
         "smpTextRotate" : 0,
         "showLegend" : false,
         "colorBy" : "Species",
         "title" : "Iris sepal length by species (Wilcoxon, Bonferroni-adjusted)",
         "showStatInference" : true,
         "statInference" : {
            "correction" : {
               "method" : "bonferroni"
            },
            "annotate" : "padj",
            "comparisons" : [
               {
                  "groups" : [
                     "setosa",
                     "versicolor"
                  ],
                  "p" : 8.34582714594074e-14
               },
               {
                  "groups" : [
                     "versicolor",
                     "virginica"
                  ],
                  "p" : 5.8690064106642e-07
               },
               {
                  "groups" : [
                     "setosa",
                     "virginica"
                  ],
                  "p" : 6.39669906939659e-17
               }
            ]
         },
         "showViolinBoxplot" : true,
         "showBoxplotIfViolin" : true,
         "colorScheme" : "Pastel"
      }

      // 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-statistics3-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-statistics3-smp.txt", header=TRUE, sep="\t", quote="", row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE)
canvasXpress(
data=y,
smpAnnot=x,
axisAlgorithm="rPretty",
axisTitleFontStyle="bold",
colorBy="Species",
colorScheme="Pastel",
graphOrientation="vertical",
graphType="Boxplot",
groupingFactors=list("Species"),
showBoxplotIfViolin=TRUE,
showLegend=FALSE,
showStatInference=TRUE,
showViolinBoxplot=TRUE,
smpTextRotate=0,
smpTitle="Species",
smpTitleFontStyle="bold",
statInference=list(annotate="padj", comparisons=list(list(groups=list("setosa", "versicolor"), p=8.34582714594074e-14), list(groups=list("versicolor", "virginica"), p=5.8690064106642e-07), list(groups=list("setosa", "virginica"), p=6.39669906939659e-17)), correction=list(method="bonferroni")),
title="Iris sepal length by species (Wilcoxon, Bonferroni-adjusted)",
xAxis=list("Sepal.Length"),
xAxisTitle="Sepal.Length"
)
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 = "statistics3",
    data = {
      "y": {
        "vars": ["Sepal.Length"],
        "smps": ["Obs1", "Obs2", "Obs3", "Obs4", "Obs5", "Obs6", "Obs7", "Obs8", "Obs9", "Obs10", "Obs11", "Obs12", "Obs13", "Obs14", "Obs15", "Obs16", "Obs17", "Obs18", "Obs19", "Obs20", "Obs21", "Obs22", "Obs23", "Obs24", "Obs25", "Obs26", "Obs27", "Obs28", "Obs29", "Obs30", "Obs31", "Obs32", "Obs33", "Obs34", "Obs35", "Obs36", "Obs37", "Obs38", "Obs39", "Obs40", "Obs41", "Obs42", "Obs43", "Obs44", "Obs45", "Obs46", "Obs47", "Obs48", "Obs49", "Obs50", "Obs51", "Obs52", "Obs53", "Obs54", "Obs55", "Obs56", "Obs57", "Obs58", "Obs59", "Obs60", "Obs61", "Obs62", "Obs63", "Obs64", "Obs65", "Obs66", "Obs67", "Obs68", "Obs69", "Obs70", "Obs71", "Obs72", "Obs73", "Obs74", "Obs75", "Obs76", "Obs77", "Obs78", "Obs79", "Obs80", "Obs81", "Obs82", "Obs83", "Obs84", "Obs85", "Obs86", "Obs87", "Obs88", "Obs89", "Obs90", "Obs91", "Obs92", "Obs93", "Obs94", "Obs95", "Obs96", "Obs97", "Obs98", "Obs99", "Obs100", "Obs101", "Obs102", "Obs103", "Obs104", "Obs105", "Obs106", "Obs107", "Obs108", "Obs109", "Obs110", "Obs111", "Obs112", "Obs113", "Obs114", "Obs115", "Obs116", "Obs117", "Obs118", "Obs119", "Obs120", "Obs121", "Obs122", "Obs123", "Obs124", "Obs125", "Obs126", "Obs127", "Obs128", "Obs129", "Obs130", "Obs131", "Obs132", "Obs133", "Obs134", "Obs135", "Obs136", "Obs137", "Obs138", "Obs139", "Obs140", "Obs141", "Obs142", "Obs143", "Obs144", "Obs145", "Obs146", "Obs147", "Obs148", "Obs149", "Obs150"],
        "data": [
          [5.1, 4.9, 4.7, 4.6, 5, 5.4, 4.6, 5, 4.4, 4.9, 5.4, 4.8, 4.8, 4.3, 5.8, 5.7, 5.4, 5.1, 5.7, 5.1, 5.4, 5.1, 4.6, 5.1, 4.8, 5, 5, 5.2, 5.2, 4.7, 4.8, 5.4, 5.2, 5.5, 4.9, 5, 5.5, 4.9, 4.4, 5.1, 5, 4.5, 4.4, 5, 5.1, 4.8, 5.1, 4.6, 5.3, 5, 7, 6.4, 6.9, 5.5, 6.5, 5.7, 6.3, 4.9, 6.6, 5.2, 5, 5.9, 6, 6.1, 5.6, 6.7, 5.6, 5.8, 6.2, 5.6, 5.9, 6.1, 6.3, 6.1, 6.4, 6.6, 6.8, 6.7, 6, 5.7, 5.5, 5.5, 5.8, 6, 5.4, 6, 6.7, 6.3, 5.6, 5.5, 5.5, 6.1, 5.8, 5, 5.6, 5.7, 5.7, 6.2, 5.1, 5.7, 6.3, 5.8, 7.1, 6.3, 6.5, 7.6, 4.9, 7.3, 6.7, 7.2, 6.5, 6.4, 6.8, 5.7, 5.8, 6.4, 6.5, 7.7, 7.7, 6, 6.9, 5.6, 7.7, 6.3, 6.7, 7.2, 6.2, 6.1, 6.4, 7.2, 7.4, 7.9, 6.4, 6.3, 6.1, 7.7, 6.3, 6.4, 6, 6.9, 6.7, 6.9, 5.8, 6.8, 6.7, 6.7, 6.3, 6.5, 6.2, 5.9]
        ]
      },
      "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",
      "groupingFactors": ["Species"],
      "xAxis": ["Sepal.Length"],
      "xAxisTitle": "Sepal.Length",
      "smpTitle": "Species",
      "smpTitleFontStyle": "bold",
      "axisTitleFontStyle": "bold",
      "axisAlgorithm": "rPretty",
      "smpTextRotate": 0,
      "showLegend": False,
      "colorBy": "Species",
      "title": "Iris sepal length by species (Wilcoxon, Bonferroni-adjusted)",
      "showStatInference": True,
      "statInference": {
        "correction": {
          "method": "bonferroni"
        },
        "annotate": "padj",
        "comparisons": [
          {
            "groups": ["setosa", "versicolor"],
            "p": 8.34582714594074e-14
          },
          {
            "groups": ["versicolor", "virginica"],
            "p": 5.8690064106642e-07
          },
          {
            "groups": ["setosa", "virginica"],
            "p": 6.39669906939659e-17
          }
        ]
      },
      "showViolinBoxplot": True,
      "showBoxplotIfViolin": True,
      "colorScheme": "Pastel"
    },
    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 = "statistics3",
    data = {
      "y": {
        "vars": ["Sepal.Length"],
        "smps": ["Obs1", "Obs2", "Obs3", "Obs4", "Obs5", "Obs6", "Obs7", "Obs8", "Obs9", "Obs10", "Obs11", "Obs12", "Obs13", "Obs14", "Obs15", "Obs16", "Obs17", "Obs18", "Obs19", "Obs20", "Obs21", "Obs22", "Obs23", "Obs24", "Obs25", "Obs26", "Obs27", "Obs28", "Obs29", "Obs30", "Obs31", "Obs32", "Obs33", "Obs34", "Obs35", "Obs36", "Obs37", "Obs38", "Obs39", "Obs40", "Obs41", "Obs42", "Obs43", "Obs44", "Obs45", "Obs46", "Obs47", "Obs48", "Obs49", "Obs50", "Obs51", "Obs52", "Obs53", "Obs54", "Obs55", "Obs56", "Obs57", "Obs58", "Obs59", "Obs60", "Obs61", "Obs62", "Obs63", "Obs64", "Obs65", "Obs66", "Obs67", "Obs68", "Obs69", "Obs70", "Obs71", "Obs72", "Obs73", "Obs74", "Obs75", "Obs76", "Obs77", "Obs78", "Obs79", "Obs80", "Obs81", "Obs82", "Obs83", "Obs84", "Obs85", "Obs86", "Obs87", "Obs88", "Obs89", "Obs90", "Obs91", "Obs92", "Obs93", "Obs94", "Obs95", "Obs96", "Obs97", "Obs98", "Obs99", "Obs100", "Obs101", "Obs102", "Obs103", "Obs104", "Obs105", "Obs106", "Obs107", "Obs108", "Obs109", "Obs110", "Obs111", "Obs112", "Obs113", "Obs114", "Obs115", "Obs116", "Obs117", "Obs118", "Obs119", "Obs120", "Obs121", "Obs122", "Obs123", "Obs124", "Obs125", "Obs126", "Obs127", "Obs128", "Obs129", "Obs130", "Obs131", "Obs132", "Obs133", "Obs134", "Obs135", "Obs136", "Obs137", "Obs138", "Obs139", "Obs140", "Obs141", "Obs142", "Obs143", "Obs144", "Obs145", "Obs146", "Obs147", "Obs148", "Obs149", "Obs150"],
        "data": [
          [5.1, 4.9, 4.7, 4.6, 5, 5.4, 4.6, 5, 4.4, 4.9, 5.4, 4.8, 4.8, 4.3, 5.8, 5.7, 5.4, 5.1, 5.7, 5.1, 5.4, 5.1, 4.6, 5.1, 4.8, 5, 5, 5.2, 5.2, 4.7, 4.8, 5.4, 5.2, 5.5, 4.9, 5, 5.5, 4.9, 4.4, 5.1, 5, 4.5, 4.4, 5, 5.1, 4.8, 5.1, 4.6, 5.3, 5, 7, 6.4, 6.9, 5.5, 6.5, 5.7, 6.3, 4.9, 6.6, 5.2, 5, 5.9, 6, 6.1, 5.6, 6.7, 5.6, 5.8, 6.2, 5.6, 5.9, 6.1, 6.3, 6.1, 6.4, 6.6, 6.8, 6.7, 6, 5.7, 5.5, 5.5, 5.8, 6, 5.4, 6, 6.7, 6.3, 5.6, 5.5, 5.5, 6.1, 5.8, 5, 5.6, 5.7, 5.7, 6.2, 5.1, 5.7, 6.3, 5.8, 7.1, 6.3, 6.5, 7.6, 4.9, 7.3, 6.7, 7.2, 6.5, 6.4, 6.8, 5.7, 5.8, 6.4, 6.5, 7.7, 7.7, 6, 6.9, 5.6, 7.7, 6.3, 6.7, 7.2, 6.2, 6.1, 6.4, 7.2, 7.4, 7.9, 6.4, 6.3, 6.1, 7.7, 6.3, 6.4, 6, 6.9, 6.7, 6.9, 5.8, 6.8, 6.7, 6.7, 6.3, 6.5, 6.2, 5.9]
        ]
      },
      "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",
      "groupingFactors": ["Species"],
      "xAxis": ["Sepal.Length"],
      "xAxisTitle": "Sepal.Length",
      "smpTitle": "Species",
      "smpTitleFontStyle": "bold",
      "axisTitleFontStyle": "bold",
      "axisAlgorithm": "rPretty",
      "smpTextRotate": 0,
      "showLegend": False,
      "colorBy": "Species",
      "title": "Iris sepal length by species (Wilcoxon, Bonferroni-adjusted)",
      "showStatInference": True,
      "statInference": {
        "correction": {
          "method": "bonferroni"
        },
        "annotate": "padj",
        "comparisons": [
          {
            "groups": ["setosa", "versicolor"],
            "p": 8.34582714594074e-14
          },
          {
            "groups": ["versicolor", "virginica"],
            "p": 5.8690064106642e-07
          },
          {
            "groups": ["setosa", "virginica"],
            "p": 6.39669906939659e-17
          }
        ]
      },
      "showViolinBoxplot": True,
      "showBoxplotIfViolin": True,
      "colorScheme": "Pastel"
    },
    width = 600,
    height = 600
  )
)
using CanvasXpress

canvasxpress(Dict(
  "y" => Dict(
    "vars" => ["Sepal.Length"],
    "smps" => ["Obs1", "Obs2", "Obs3", "Obs4", "Obs5", "Obs6", "Obs7", "Obs8", "Obs9", "Obs10", "Obs11", "Obs12", "Obs13", "Obs14", "Obs15", "Obs16", "Obs17", "Obs18", "Obs19", "Obs20", "Obs21", "Obs22", "Obs23", "Obs24", "Obs25", "Obs26", "Obs27", "Obs28", "Obs29", "Obs30", "Obs31", "Obs32", "Obs33", "Obs34", "Obs35", "Obs36", "Obs37", "Obs38", "Obs39", "Obs40", "Obs41", "Obs42", "Obs43", "Obs44", "Obs45", "Obs46", "Obs47", "Obs48", "Obs49", "Obs50", "Obs51", "Obs52", "Obs53", "Obs54", "Obs55", "Obs56", "Obs57", "Obs58", "Obs59", "Obs60", "Obs61", "Obs62", "Obs63", "Obs64", "Obs65", "Obs66", "Obs67", "Obs68", "Obs69", "Obs70", "Obs71", "Obs72", "Obs73", "Obs74", "Obs75", "Obs76", "Obs77", "Obs78", "Obs79", "Obs80", "Obs81", "Obs82", "Obs83", "Obs84", "Obs85", "Obs86", "Obs87", "Obs88", "Obs89", "Obs90", "Obs91", "Obs92", "Obs93", "Obs94", "Obs95", "Obs96", "Obs97", "Obs98", "Obs99", "Obs100", "Obs101", "Obs102", "Obs103", "Obs104", "Obs105", "Obs106", "Obs107", "Obs108", "Obs109", "Obs110", "Obs111", "Obs112", "Obs113", "Obs114", "Obs115", "Obs116", "Obs117", "Obs118", "Obs119", "Obs120", "Obs121", "Obs122", "Obs123", "Obs124", "Obs125", "Obs126", "Obs127", "Obs128", "Obs129", "Obs130", "Obs131", "Obs132", "Obs133", "Obs134", "Obs135", "Obs136", "Obs137", "Obs138", "Obs139", "Obs140", "Obs141", "Obs142", "Obs143", "Obs144", "Obs145", "Obs146", "Obs147", "Obs148", "Obs149", "Obs150"],
    "data" => [
      [5.1, 4.9, 4.7, 4.6, 5, 5.4, 4.6, 5, 4.4, 4.9, 5.4, 4.8, 4.8, 4.3, 5.8, 5.7, 5.4, 5.1, 5.7, 5.1, 5.4, 5.1, 4.6, 5.1, 4.8, 5, 5, 5.2, 5.2, 4.7, 4.8, 5.4, 5.2, 5.5, 4.9, 5, 5.5, 4.9, 4.4, 5.1, 5, 4.5, 4.4, 5, 5.1, 4.8, 5.1, 4.6, 5.3, 5, 7, 6.4, 6.9, 5.5, 6.5, 5.7, 6.3, 4.9, 6.6, 5.2, 5, 5.9, 6, 6.1, 5.6, 6.7, 5.6, 5.8, 6.2, 5.6, 5.9, 6.1, 6.3, 6.1, 6.4, 6.6, 6.8, 6.7, 6, 5.7, 5.5, 5.5, 5.8, 6, 5.4, 6, 6.7, 6.3, 5.6, 5.5, 5.5, 6.1, 5.8, 5, 5.6, 5.7, 5.7, 6.2, 5.1, 5.7, 6.3, 5.8, 7.1, 6.3, 6.5, 7.6, 4.9, 7.3, 6.7, 7.2, 6.5, 6.4, 6.8, 5.7, 5.8, 6.4, 6.5, 7.7, 7.7, 6, 6.9, 5.6, 7.7, 6.3, 6.7, 7.2, 6.2, 6.1, 6.4, 7.2, 7.4, 7.9, 6.4, 6.3, 6.1, 7.7, 6.3, 6.4, 6, 6.9, 6.7, 6.9, 5.8, 6.8, 6.7, 6.7, 6.3, 6.5, 6.2, 5.9]
    ]
  ),
  "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",
  groupingFactors = ["Species"],
  xAxis = ["Sepal.Length"],
  xAxisTitle = "Sepal.Length",
  smpTitle = "Species",
  smpTitleFontStyle = "bold",
  axisTitleFontStyle = "bold",
  axisAlgorithm = "rPretty",
  smpTextRotate = 0,
  showLegend = false,
  colorBy = "Species",
  title = "Iris sepal length by species (Wilcoxon, Bonferroni-adjusted)",
  showStatInference = true,
  statInference = Dict(
    "correction" => Dict(
      "method" => "bonferroni"
    ),
    "annotate" => "padj",
    "comparisons" => [
      Dict(
        "groups" => ["setosa", "versicolor"],
        "p" => 8.34582714594074e-14
      ),
      Dict(
        "groups" => ["versicolor", "virginica"],
        "p" => 5.8690064106642e-07
      ),
      Dict(
        "groups" => ["setosa", "virginica"],
        "p" => 6.39669906939659e-17
      )
    ]
  ),
  showViolinBoxplot = true,
  showBoxplotIfViolin = true,
  colorScheme = "Pastel"
)
⇧