{"id":3743,"date":"2026-05-28T13:13:55","date_gmt":"2026-05-28T17:13:55","guid":{"rendered":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/?p=3743"},"modified":"2026-05-28T13:13:55","modified_gmt":"2026-05-28T17:13:55","slug":"raincloudplot-cloudy-with-a-chance-of-observations","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/2026\/05\/28\/raincloudplot-cloudy-with-a-chance-of-observations\/","title":{"rendered":"raincloudplot: Cloudy With A Chance of Observations"},"content":{"rendered":"<table style=\"background-color: #e2f0ff\">\r\n<tbody>\r\n<tr>\r\n<td style=\"width: 120px;padding: 3px;vertical-align: middle\"><img decoding=\"async\" class=\"aligncenter size-thumbnail wp-image-1232\" src=\"http:\/\/blogs.mathworks.com\/graphics-and-apps\/files\/2025\/01\/EinarssonBaldvin.png\" alt=\"\" \/><\/td>\r\n<td style=\"vertical-align: middle;padding: 3px\"><strong>Guest Writer: <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/profile\/authors\/28262362\" target=\"_blank\" rel=\"noopener\">Baldvin Einarsson<\/a>\r\n<\/strong>\r\n<div class=\"content\">\r\n<div class=\"SectionBlock first active\">\r\n<div class=\"SD57BF6401\">Baldvin is a software engineer in the Statistics and Machine Learning Toolbox. His journey with MATLAB began in the early 2000s during his college years in Iceland, where he first discovered his passion for scientific computing and visualizations. Before joining MathWorks, Baldvin's mathematical research interests included modeling growth and migration patterns of pelagic fish, coupled oscillators and dynamical systems, and biofilm growth. Baldvin then spent nearly 9 years at a natural catastrophe risk modeling firm in Boston before his dream of joining MathWorks became true in 2022. Outside of work, Baldvin enjoys fly tying, knitting, woodworking, and playing the piano.<\/div>\r\n<\/div>\r\n<\/div><\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<div class=\"rtcContent\">\r\n<div style=\"margin: 2px 10px 9px 4px;padding: 0px;line-height: 21px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 14px;font-weight: 400;text-align: left\"><span class=\"_richTextNode\">It's raining data visualizations in MATLAB! In this article, we introduce the <\/span><a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/raincloudplot.html\" target=\"_blank\" rel=\"noopener\"><span class=\"_richTextNode\" style=\"font-family: monospace\">raincloudplot<\/span><\/a><span class=\"_richTextNode\">, a convenient way to show both distributions <\/span><span class=\"_richTextNode\" style=\"font-style: italic\">and<\/span><span class=\"_richTextNode\"> individual observations in a single chart. A bit of history first: in R2024b we introduced the <\/span><a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/violinplot.html\" target=\"_blank\" rel=\"noopener\"><span class=\"_richTextNode\" style=\"font-family: monospace\">violinplot<\/span><\/a><span class=\"_richTextNode\">, and in R2025a <\/span><a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/scatter.html\" target=\"_blank\" rel=\"noopener\"><span class=\"_richTextNode\" style=\"font-family: monospace\">scatter<\/span><\/a><span class=\"_richTextNode\"> objects gained new properties to control the direction of jittered points, such as <\/span><span class=\"_richTextNode\" style=\"font-family: monospace\">YJitterDirection<\/span><span class=\"_richTextNode\">. Together, these features made it possible to combine violins and scatter points to create rain cloud plots. But, doing so required careful coordination and styling across multiple objects. With the new <\/span><span class=\"_richTextNode\" style=\"font-family: monospace\">raincloudplot<\/span><span class=\"_richTextNode\"> function, all of that comes together in one place. Creating, modifying, and styling rain cloud plots is now as easy as predicting yesterday\u2019s weather.<\/span><\/div>\r\n<h2 style=\"margin: 20px 10px 5px 4px;padding: 0px;line-height: 25px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 20px;font-weight: bold;text-align: left\"><span class=\"_richTextNode\">The Perfect Storm<\/span><\/h2>\r\n<div style=\"margin: 2px 10px 9px 4px;padding: 0px;line-height: 21px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 14px;font-weight: 400;text-align: left\"><span class=\"_richTextNode\">The top part of a rain cloud is the \"cloud\" (the violin plot), followed by the \"rain\" (the scatter). Let's use the same data we used in the <\/span><a href=\"https:\/\/blogs.mathworks.com\/graphics-and-apps\/2025\/01\/16\/violin-plot-a-tool-for-data-visualization\/\" target=\"_blank\" rel=\"noopener\"><span class=\"_richTextNode\">violin plot blog post<\/span><\/a><span class=\"_richTextNode\">:<\/span><\/div>\r\n<div style=\"background-color: #f5f5f5;margin: 10px 0 10px 0\">\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 4px 4px 0px 0px;padding: 6px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">rng(42);<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">nPts=24;<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">cloudData = [1.2*randn(1,6*nPts), 0.5*randn(1,4*nPts) + 6, ...<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">\u00a0\u00a0\u00a0\u00a06+8*rand([1,nPts]), 8*rand([1,nPts])];<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px 0px 4px 4px;padding: 0px 45px 4px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">loc = ones(size(cloudData));<\/div>\r\n<\/div>\r\n<\/div>\r\n<div style=\"margin: 10px 10px 9px 4px;padding: 0px;line-height: 21px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 14px;font-weight: 400;text-align: left\"><span class=\"_richTextNode\">Compare creating the two parts individually and with <\/span><span class=\"_richTextNode\" style=\"font-family: monospace\">raincloudplot:<\/span><\/div>\r\n<\/div>\r\n<div><\/div>\r\n<div class=\"rtcContent\">\r\n<div style=\"background-color: #f5f5f5;margin: 10px 0 10px 0\">\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 4px 4px 0px 0px;padding: 6px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">v = violinplot(loc, cloudData, ...<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">\u00a0\u00a0\u00a0\u00a0Orientation=<span style=\"color: #a709f5\">\"horizontal\"<\/span>, DensityDirection=<span style=\"color: #a709f5\">\"positive\"<\/span>, ...<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">\u00a0\u00a0\u00a0\u00a0DisplayName=<span style=\"color: #a709f5\">\"The Cloud\"<\/span>);<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">hold <span style=\"color: #a709f5\">on<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">scatter(cloudData,loc, ...<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">\u00a0\u00a0\u00a0\u00a0<span style=\"color: #a709f5\">'filled'<\/span>, MarkerFaceAlpha=v.FaceAlpha, ...<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">\u00a0\u00a0\u00a0\u00a0MarkerEdgeColor=<span style=\"color: #a709f5\">\"flat\"<\/span>, MarkerEdgeAlpha=1, ....<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">\u00a0\u00a0\u00a0\u00a0YJitter=<span style=\"color: #a709f5\">\"density\"<\/span>, YJitterDirection=<span style=\"color: #a709f5\">\"negative\"<\/span>,...<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">\u00a0\u00a0\u00a0\u00a0SeriesIndex=v.SeriesIndex, ...<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">\u00a0\u00a0\u00a0\u00a0DisplayName=<span style=\"color: #a709f5\">\"The Rain\"<\/span>);<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">hold off<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">legend<\/div>\r\n<\/div>\r\n<\/div>\r\n<iframe loading=\"lazy\" src=\"http:\/\/blogs.mathworks.com\/graphics-and-apps\/files\/2025\/01\/raincloud_fig1.html\" width=\"850\" height=\"500\"><\/iframe>\r\n<div style=\"background-color: #f5f5f5;margin: 10px 0 10px 0\">\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">raincloudplot(1, cloudData, DisplayName=<span style=\"color: #a709f5\">'The Rain in Spain'<\/span>);<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px 0px 4px 4px;padding: 0px 45px 4px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">legend<\/div>\r\n<\/div>\r\n<\/div>\r\n<iframe loading=\"lazy\" src=\"http:\/\/blogs.mathworks.com\/graphics-and-apps\/files\/2025\/01\/raincloud_fig2.html\" width=\"850\" height=\"500\"><span data-mce-type=\"bookmark\" style=\"width: 0px;overflow: hidden;line-height: 0\" class=\"mce_SELRES_start\">\ufeff<\/span><\/iframe>\r\n<div><\/div>\r\n<div style=\"margin: 2px 10px 9px 4px;padding: 0px;line-height: 21px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 14px;font-weight: 400;text-align: left\"><span class=\"_richTextNode\">Apart from having to use <\/span><span class=\"_richTextNode\" style=\"font-family: monospace\">hold on\/off<\/span><span class=\"_richTextNode\">, there are a few things to note. First, because the violinplot is oriented horizontally, we must swap the roles of the x and y inputs to scatter. Furthermore, we need to keep up with different property names, for example <\/span><span class=\"_richTextNode\" style=\"font-family: monospace\">DensityDirection<\/span><span class=\"_richTextNode\"> on the violin, and <\/span><span class=\"_richTextNode\" style=\"font-family: monospace\">YJitterDirection<\/span><span class=\"_richTextNode\"> on the scatter. We ensured that the color of the scatter matched the violin by setting the <\/span><span class=\"_richTextNode\" style=\"font-family: monospace\">SeriesIndex<\/span><span class=\"_richTextNode\"> property. And note that there are two legend entries instead of one. The <\/span><span class=\"_richTextNode\" style=\"font-family: monospace\">raincloudplot<\/span><span class=\"_richTextNode\"> handles all of this for us, demonstrating the benefits of having a dedicated chart for the rain cloud plot.<\/span><\/div>\r\n<h2 style=\"margin: 20px 10px 5px 4px;padding: 0px;line-height: 25px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 20px;font-weight: bold;text-align: left\"><span class=\"_richTextNode\">The Forecast Is Clear<\/span><\/h2>\r\n<div style=\"margin: 2px 10px 9px 4px;padding: 0px;line-height: 21px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 14px;font-weight: 400;text-align: left\"><span class=\"_richTextNode\">With <\/span><span class=\"_richTextNode\" style=\"font-family: monospace\">raincloudplot<\/span><span class=\"_richTextNode\">, you no longer need to juggle separate violin and scatter objects, match their orientations, synchronize colors and styles, or remember which property name belongs to which object. A single function call gives you the full picture: the kernel density estimate overhead reveals the shape of your distribution, while the individual observations below keep you honest about what's actually in the data. This makes it easy to spot gaps and clusters that box plots and histograms can hide. As we discussed in the Coda section of the <\/span><a href=\"https:\/\/blogs.mathworks.com\/graphics-and-apps\/2025\/01\/16\/violin-plot-a-tool-for-data-visualization\/\" target=\"_blank\" rel=\"noopener\"><span class=\"_richTextNode\" style=\"font-family: monospace\">violinplot<\/span><span class=\"_richTextNode\"> blog post<\/span><\/a><span class=\"_richTextNode\">, understanding what a kernel density estimate can and cannot tell you is key to interpreting these charts well. Rain cloud plot takes that a step further by grounding the density curve in the actual observations.<\/span><\/div>\r\n<h2 style=\"margin: 20px 10px 5px 4px;padding: 0px;line-height: 25px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 20px;font-weight: bold;text-align: left\"><span class=\"_richTextNode\">When It Rains It Pours<\/span><\/h2>\r\n<div style=\"margin: 2px 10px 9px 4px;padding: 0px;line-height: 21px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 14px;font-weight: 400;text-align: left\"><span class=\"_richTextNode\">Creating nice looking rain cloud plots is now a breeze. There are many nice features of <\/span><span class=\"_richTextNode\" style=\"font-family: monospace\">raincloudplot<\/span><span class=\"_richTextNode\">, including matrix and table support:<\/span><\/div>\r\n<div style=\"background-color: #f5f5f5;margin: 10px 0 10px 0\">\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 4px 4px 0px 0px;padding: 6px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">figure<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">tl = tiledlayout(2,1);<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">T = readtable(<span style=\"color: #a709f5\">'tsunamis.xlsx'<\/span>);<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">nexttile(tl)<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">raincloudplot(T, [<span style=\"color: #a709f5\">\"Longitude\"<\/span>,<span style=\"color: #a709f5\">\"Latitude\"<\/span>])<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">title(<span style=\"color: #a709f5\">\"Table input\"<\/span>)<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">nexttile(tl)<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">raincloudplot(randn(100,3))<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px 0px 4px 4px;padding: 0px 45px 4px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">title(<span style=\"color: #a709f5\">\"Matrix input\"<\/span>)<\/div>\r\n<\/div>\r\n<\/div>\r\n<div><img decoding=\"async\" style=\"width: 600px;height: auto\" src=\"http:\/\/blogs.mathworks.com\/graphics-and-apps\/files\/2025\/01\/raincloud_fig3.png\" alt=\"\" \/><\/div>\r\n<div style=\"margin: 10px 10px 9px 4px;padding: 0px;line-height: 21px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 14px;font-weight: 400;text-align: left\"><span class=\"_richTextNode\">Another benefit of <\/span><span class=\"_richTextNode\" style=\"font-family: monospace\">raincloudplot<\/span><span class=\"_richTextNode\"> is that all properties are now contained in a single documentation page (<\/span><a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/matlab.graphics.chart.primitive.raincloudplot-properties.html\" target=\"_blank\" rel=\"noopener\"><span class=\"_richTextNode\">link<\/span><\/a><span class=\"_richTextNode\">). While <\/span><span class=\"_richTextNode\" style=\"font-family: monospace\">raincloudplot<\/span><span class=\"_richTextNode\"> handles a lot of details for us, it remains flexible in its ability to style the chart. Let's demonstrate this with the rain cloud that many of you were probably already thinking about creating:<\/span><\/div>\r\n<div style=\"background-color: #f5f5f5;margin: 10px 0 10px 0\">\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 4px 4px 0px 0px;padding: 6px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">figure<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">silverLining = [189,193,197]\/255;<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">purpleRain = [133,22,209]\/255;<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">r = raincloudplot(cloudData, ...<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">\u00a0\u00a0\u00a0\u00a0EdgeColor=silverLining, FaceColor=<span style=\"color: #a709f5\">'none'<\/span>, LineWidth=3, ...<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-radius: 0px 0px 4px 4px;padding: 0px 45px 4px 13px;line-height: 18.004px;min-height: 0px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">\u00a0\u00a0\u00a0\u00a0Marker='.', MarkerSize=57, MarkerEdgeColor=purpleRain);<\/div>\r\n<\/div>\r\n<\/div>\r\n<div><img decoding=\"async\" style=\"width: 600px;height: auto\" src=\"http:\/\/blogs.mathworks.com\/graphics-and-apps\/files\/2025\/01\/raincloud_fig4.png\" alt=\"\" \/><\/div>\r\n<div style=\"margin: 10px 10px 9px 4px;padding: 0px;line-height: 21px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 14px;font-weight: 400;text-align: left\"><span class=\"_richTextNode\">Give <\/span><span class=\"_richTextNode\" style=\"font-family: monospace\">raincloudplot<\/span><span class=\"_richTextNode\"> a try on your own data - we think you'll be on cloud nine.<\/span><\/div>\r\n&nbsp;\r\n\r\n<\/div>\r\n<script type=\"text\/javascript\">\r\n{ let css = '._richTextNode {white-space: break-spaces;}';\r\nlet head = document.head || document.getElementsByTagName('head')[0];\r\nlet style = document.createElement('style');\r\nhead.appendChild(style);\r\nstyle.type = 'text\/css';\r\nif (style.styleSheet) {\r\n    style.styleSheet.cssText = css;\r\n} else {\r\n    style.appendChild(document.createTextNode(css));\r\n}\r\n\r\n\r\n}<\/script><a href=\"https:\/\/blogs.mathworks.com\/graphics-and-apps\/files\/2026\/05\/raincloudplot_26a.mlx\"><button class=\"btn btn-sm btn_color_blue pull-right add_margin_10\">Download Live Script<\/button><\/a>","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img src=\"https:\/\/blogs.mathworks.com\/graphics-and-apps\/files\/2025\/01\/raincloud_fig4.png\" class=\"img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/div><p>\r\n\r\n\r\n\r\nGuest Writer: Baldvin Einarsson\r\n\r\n\r\n\r\nBaldvin is a software engineer in the Statistics and Machine Learning Toolbox. His journey with MATLAB began in the early 2000s during his college years... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/graphics-and-apps\/2026\/05\/28\/raincloudplot-cloudy-with-a-chance-of-observations\/\">read more >><\/a><\/p>","protected":false},"author":198,"featured_media":3747,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[14,11,20],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/posts\/3743"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/users\/198"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/comments?post=3743"}],"version-history":[{"count":10,"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/posts\/3743\/revisions"}],"predecessor-version":[{"id":3757,"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/posts\/3743\/revisions\/3757"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/media\/3747"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/media?parent=3743"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/categories?post=3743"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/tags?post=3743"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}