1import{j as e,L as r}from"./vendor-react-CVijXI0n.js";import{S as l,b as n,h as d,a as c}from"./index-D0o2Sutv.js";import{C as x}from"./ChartBreadcrumb-BOBTh6lg.js";import{C as h,b as p}from"./ChartFAQ-DwXxlpIj.js";const a="https://www.visualizing.org",s=[{q:"What is a violin plot?",a:'A violin plot is a hybrid visualization that combines a box plot with a kernel density estimate (KDE). The shape of the "violin" is a mirrored density curve: at any given value on the vertical axis, the width of the shape shows how many data points fall near that value. Wider sections mean more data; narrower sections mean less.'},{q:"When should you use a violin plot?",a:"Use a violin plot when you need to see the full shape of a distribution, not just a five-number summary. It also works well when your data may be bimodal or multimodal and you need to detect multiple peaks, and when comparing distributions across 2â10 categories side by side."},{q:"When should you avoid a violin plot?",a:"Avoid a violin plot when your sample size is very small (n < 20) â the density estimate will be unreliable. It is also a poor fit when your audience is non-technical and unfamiliar with density curves, or when you have more than 10â12 groups â the chart becomes too crowded."},{q:"How is a violin plot different from a box plot?",a:"Both a violin plot and a box plot can look similar at first glance, but they answer different questions. Reach for a violin plot when the comparisons and patterns it was designed to reveal match what you need to communicate, and choose a box plot when its particular strengths better fit your data and audience."},{q:"Is a violin plot suitable for dashboards?",a:"Yes â a violin plot can work well in dashboards as long as the panel is large enough for readers to perceive the encoded values, has a clear title, and includes the legend or axis labels needed to interpret it."},{q:"What category of chart is a violin plot?",a:"Violin Plot belongs to the Distribution family of charts. Charts in that family are designed to answer the same kind of question, so they often work as alternatives when one doesn't quite fit your data."}],m=p("/violin-plot",s),b={"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":`${a}/violin-plot/#webpage`,url:`${a}/violin-plot`,name:"Violin Plot â The Definitive Guide",description:"Learn what a violin plot is, how to read one step by step, when to use violin plots vs box plots, and common mistakes to avoid.",isPartOf:{"@id":`${a}/#website`},breadcrumb:{"@id":`${a}/violin-plot/#breadcrumb`},mainEntity:{"@id":`${a}/violin-plot/#article`},inLanguage:"en"},n({slug:"/violin-plot",caption:"Example violin plot",width:620,height:280}),{"@type":["Article","LearningResource"],"@id":`${a}/violin-plot/#article`,mainEntityOfPage:{"@id":`${a}/violin-plot/#webpage`},headline:"Violin Plot: Definition, How to Read, and When to Use",description:"A complete reference guide to violin plots â what they are, how to interpret them, when to use them, and common mistakes to avoid.",image:{"@id":d("/violin-plot")},datePublished:"2025-03-15",dateModified:"2026-04-07",publisher:{"@id":`${a}/#organization`},inLanguage:"en",educationalLevel:"intermediate",learningResourceType:"reference",teaches:["How to read and interpret violin plots","When to use violin plots for data visualization","Common violin plot mistakes and how to avoid them"],competencyRequired:"Basic understanding of distributions and box plots",timeRequired:"PT12M",isAccessibleForFree:!0,audience:{"@type":"EducationalAudience",educationalRole:"student"},about:{"@id":`${a}/violin-plot/#term`},keywords:["violin plot","data visualization","chart types","distribution","density"]},{"@type":"DefinedTerm","@id":`${a}/violin-plot/#term`,name:"Violin Plot",description:"A data visualization chart type that combines a box plot with a mirrored kernel density plot to show the full distribution shape of numeric data across categories. The width at any point represents the density of data at that value.",inDefinedTermSet:{"@id":`${a}/chart-types/#termset`},termCode:"violin-plot",url:`${a}/violin-plot`,sameAs:"https://en.wikipedia.org/wiki/Violin_plot"},{"@type":"DefinedTermSet","@id":`${a}/chart-types/#termset`,name:"Data Visualization Chart Types",url:`${a}/chart-types`}
1,c("/violin-plot"),m]},f=[{id:"the-chart",label:"The chart"},{id:"what-is-it",label:"What is it?"},{id:"anatomy",label:"Anatomy"},{id:"when-to-use",label:"When to use it"},{id:"how-to-read",label:"How to read it"},{id:"common-mistakes",label:"Common mistakes"},{id:"real-world-examples",label:"Real-world examples"},{id:"key-facts",label:"Quick reference"},{id:"variations",label:"Variations"},{id:"faqs",label:"FAQs"},{id:"related-charts",label:"Related charts"}];function j(){return e.jsxs(e.Fragment,{children:[e.jsx(l,{title:"Violin Plot: What It Is, When To Use It & Examples",description:"Violin Plot guide: what it is, when to use it for distribution analysis, real examples, common pitfalls, and tools to build one yourself.",path:"/violin-plot",ogType:"article",jsonLd:[b]}),e.jsx(x,{slug:"/violin-plot"}),e.jsxs("div",{className:"max-w-[1100px] mx-auto px-6 md:px-12",children:[e.jsxs("div",{className:"py-[56px] pb-[48px] border-b border-[var(--border-color)]",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-5",children:[e.jsx("span",{className:"font-mono text-[10px] tracking-[0.12em] uppercase bg-[var(--accent-light)] text-[var(--accent-color)] px-[10px] py-[4px] rounded-[3px] font-medium",children:"Distribution"}),e.jsx("span",{className:"font-mono text-[10px] tracking-[0.10em] uppercase bg-[var(--bg-alt)] text-[var(--ink-muted)] px-[10px] py-[4px] rounded-[3px]",children:"Intermediate"})]}),e.jsx("h1",{className:"font-serif text-[42px] md:text-[52px] font-normal tracking-[-0.025em] leading-[1.1] text-[var(--ink)] mb-4",children:"Violin Plot"}),e.jsx("p",{className:"text-[17px] md:text-[19px] font-light text-[var(--ink-muted)] leading-[1.6] max-w-[640px]",children:"A box plot that shows its work â the full shape of a distribution, mirrored symmetrically, revealing peaks, gaps, and clusters that summary statistics hide."})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-[1fr_280px] gap-16 pt-12 items-start",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("section",{className:"py-14 border-b border-[var(--border-color)]",id:"the-chart",children:[e.jsx("p",{className:"font-mono text-[10px] tracking-[0.14em] uppercase text-[var(--accent-color)] mb-3",children:"// 01 â The chart"}),e.jsx("h2",{className:"font-serif text-[28px] md:text-[30px] font-normal tracking-[-0.02em] text-[var(--ink)] mb-6 leading-[1.2]",children:"What it looks like"}),e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--border-color)] rounded-[12px] p-6 md:p-10 mt-8 mb-2",children:[e.jsxs("div",{className:"font-mono text-[10px] tracking-[0.10em] uppercase text-[var(--ink-faint)] mb-6 flex justify-between items-center",children:[e.jsxs("span",{children:["Example â ",e.jsx("em",{className:"not-italic text-[var(--accent-color)] font-medium",children:"Response time by service tier"})]}),e.jsx("span",{children:"Milliseconds"})]}),e.jsxs("svg",{viewBox:"0 0 620 280",xmlns:"http://www.w3.org/2000/svg",className:"w-full block",children:[e.jsx("line",{x1:"72",y1:"20",x2:"72",y2:"240",stroke:"#1a1a18",strokeWidth:"0.5",strokeOpacity:"0.10"}),e.jsx("line",{x1:"72",y1:"240",x2:"600",y2:"240",stroke:"#1a1a18",strokeWidth:"1",strokeOpacity:"0.15"}),e.jsx("line",{x1:"72",y1:"60",x2:"600",y2:"60",stroke:"#1a1a18",strokeWidth:"0.5",strokeOpacity:"0.08",strokeDasharray:"4,3"}),e.jsx("line",{x1:"72",y1:"110",x2:"600",y2:"110",stroke:"#1a1a18",strokeWidth:"0.5",strokeOpacity:"0.08",strokeDasharray:"4,3"}),e.jsx("line",{x1:"72",y1:"160",x2:"600",y2:"160",stroke:"#1a1a18",strokeWidth:"0.5",strokeOpacity:"0.08",strokeDasharray:"4,3"}),e.jsx("line",{x1:"72",y1:"200",x2:"600",y2:"200",stroke:"#1a1a18",strokeWidth:"0.5",strokeOpacity:"0.08",strokeDasharray:"4,3"}),e.jsx("text",{x:"62",y:"28",textAnchor:"end",fill:"#b0b0aa",fontSize:"10",fontFamily:"DM Mono, monospace",children:"500"}),e.jsx("text",{x:"62",y:"65",textAnchor:"end",fill:"#b0b0aa",fontSize:"10",fontFamily:"DM Mono, monospace",children:"400"}),e.jsx("text",{x:"62",y:"115",textAnchor:"end",fill:"#b0b0aa",fontSize:"10",fontFamily:"DM Mono, monospace",children:"300"}),e.jsx("text",{x:"62",y:"165",textAnchor:"end",fill:"#b0b0aa",fontSize:"10",fontFamily:"DM Mono, monospace",children:"200"}),e.jsx("text",{x:"62",y:"205",textAnchor:"end",fill:"#b0b0aa",fontSize:"10",fontFamily:"DM Mono, monospace",children:"100"}),e.jsx("text",{x:"62",y:"244",textAnchor:"end",fill:"#b0b0aa",fontSize:"10",fontFamily:"DM Mono, monospace",children:"0"}),e.jsx("path",{d:"M155,50 C155,50 175,70 178,100 C181,130 182,150 180,170 C178,190 170,210 162,225 C158,232 152,236 150,238 C148,236 142,232 138,225 C130,210 122,190 120,170 C118,150 119,130 122,100 C125,70 145,50 145,50 Z",fill:"#f5ede9",stroke:"#e8c4b8",strokeWidth:"1"}),e.jsx("line",{x1:"130",y1:"190",x2:"170",y2:"190",stroke:"#1a1a18",strokeWidth:"1.5",strokeOpacity:"0.3"}),e.jsx("line",{x1:"150",y1:"80",x2:"150",y2:"235",stroke:"#1a1a18",strokeWidth:"0.5",strokeOpacity:"0.15"}),e.jsx("circle",{cx:"150",cy:"190",r:"3",fill:"#1a1a18",fillOpacity:"0.4"}),e.jsx("path",{d:"M305,55 C305,55 330,68 334,90 C338,110 330,125 325,135 C320,142 316,145 320,155 C324,165 338,175 340,195 C342,215 330,230 310,238 C310,238 310,238 310,238 C310,238 310,238 310,238 C290,230 278,215 280,195 C282,175 296,165 300,155 C304,145 300,142 295,135 C290,125 282,110 286,90 C290,68 315,55 315,55 Z",fill:"#c94a2e",fillOpacity:"0.15",stroke:"#c94a2e",strokeWidth:"1.5"}),e.jsx("line",{x1:"295",y1:"155",x2:"325",y2:"155",stroke:"#c94a2e",strokeWidth:"2"}),e.jsx("line",{x1:"310",y1:"70",x2:"310",y2:"235",stroke:"#c94a2e",strokeWidth:"0.8",strokeOpacity:"0.3"}),e.jsx("circle",{cx:"310",cy:"155",r:"3",fill:"#c94a2e"}),e.jsx("path",{d:"M470,120 C470,120 500,140 504,160 C508,175 506,190 500,205 C496,215 485,228 470,235 C455,228 444,215 440,205 C434,190 432,175 436,160 C440,140 470,120 470,120 Z",fill:"#f5ede9",stroke:"#e8c4b8",strokeWidth:"1"}),e.jsx("line",{x1:"450",y1:"185",x2:"490",y2:"185",stroke:"#1a1a18",strokeWidth:"1.5",strokeOpacity:"0.3"}),e.jsx("line",{x1:"470",y1:"130",x2:"470",y2:"232",stroke:"#1a1a18",strokeWidth:"0.5",strokeOpacity:"0.15"}),e.jsx("circle",{cx:"470",cy:"185",r:"3",fill:"#1a1a18",fillOpacity:"0.4"}),e.jsx("text",{x:"150",y:"256",textAnchor:"middle",fill:"#b0b0aa",fontSize:"11",fontFamily:"DM Mono, monospace",children:"Free"}),e.jsx("text",{x:"310",y:"256",textAnchor:"middle",fill:"#c94a2e",fontSize:"11",fontFamily:"DM Mono, monospace",fontWeight:"500",children:"Basic"}),e.jsx("text",{x:"470",y:"256",textAnchor:"middle",fill:"#b0b0aa",fontSize:"11",fontFamily:"DM Mono, monospace",children:"Premium"}),e.jsx("line",{x1:"342",y1:"90",x2:"370",y2:"60",stroke:"#c94a2e",strokeWidth:"1",strokeDasharray:"3,2"}),e.jsx("rect",{x:"372",y:"48",width:"82",height:"22",rx:"3",fill:"#c94a2e"}),e.jsx("text",{x:"413",y:"63",textAnchor:"middle",fill:"#fff",fontSize:"9",fontFamily:"DM Mono, monospace",children:"Bimodal!"})]}),e.jsx("p",{className:"text-[13px] text-[var(--ink-muted)] text-center italic mt-4",children:"Three violin plots comparing response time distributions. The highlighted âBasicâ tier reveals a bimodal distribution â two separate peaks â that a box plot would completely hide."})]})]}),e.jsxs("section",{className:"py-14 border-b border-[var(--border-color)]",id:"what-is-it",children:[e.jsx("p",{className:"font-mono text-[10px] tracking-[0.14em] uppercase text-[var(--accent-color)] mb-3",children:"// 02 â Definition"}),e.jsx("h2",{className:"font-serif text-[28px] md:text-[30px] font-normal tracking-[-0.02em] text-[var(--ink)] mb-6 leading-[1.2]",children:"What is a violin plot?"}),e.jsxs("div",{className:"text-[16px] font-light text-[var(--ink)] leading-[1.75]",children:[e.jsxs("p",{children:["A violin plot is a hybrid visualization that combines a ",e.jsx("strong",{className:"font-medium",children:"box plot"})," with a ",e.jsx("strong",{className:"font-medium",children:"kernel density estimate"})," (KDE). The shape of the âviolinâ is a mirrored density curve: at any given value on the vertical axis, the width of the shape shows how many data points fall near that value. Wider sections mean more data; narrower sections mean less."]}),e.jsxs("p",{className:"mt-[18px]",children:["This is the key advantage over a box plot: while a box plot summarizes data into five numbers (min, Q1, median, Q3, max), a violin plot reveals the ",e.jsx("strong",{className:"font-medium",children:"full distributional shape"}),". It shows whether data is unimodal, bimodal, or multimodal; whether itâs skewed left or right; and where the true concentration of data lies â details that summary statistics erase."]}),e.jsx("p",{className:"mt-[18px]",children:"Violin plots are especially valuable when comparing distributions across groups. Placing several violins side by side lets you instantly see which group is tightly clustered versus widely spread, and whether different groups have fundamentally different shapes."})]}),e.jsx("div",{className:"bg-[var(--accent-light)] border-l-[3px] border-l-[var(--accent-color)] rounded-r-[8px] px-5 py-4 mt-6",children:e.jsxs("p",{className:"text-[14px] text-[var(--ink)] leading-[1.65] font-light",children:[e.jsx("strong",{className:"font-medium text-[var(--accent-color)]",children:"Origin:"})," The violin plot was introduced by Jerry Hintze and Ray Nelson in 1998 in their paper âViolin Plots: A Box Plot-Density Trace Synergism.â They combined the information-rich density trace with the familiar summary of a box plot, naming the result for its resemblance to the instrument."]})})]}),e.jsxs("section",{className:"py-14 border-b border-[var(--border-color)]",id:"anatomy",children:[e.jsx("p",{className:"font-mono text-[10px] tracking-[0.14em] uppercase text-[var(--accent-color)] mb-3",children:"// 03 â Anatomy"}),e.jsx("h2",{className:"font-serif text-[28px] md:text-[30px] font-normal tracking-[-0.02em] text-[var(--ink)] mb-6 leading-[1.2]",children:"Parts of a violin plot"}),e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--border-color)] rounded-[12px] p-6 md:p-10 mt-8",children:[e.jsxs("svg",{viewBox:"0 0 580 300",xmlns:"http://www.w3.org/2000/svg",className:"w-full block",children:[e.jsx("line",{x1:"80",y1:"20",x2:"80",y2:"260",stroke:"#1a1a18",strokeWidth:"0.5",strokeOpacity:"0.15"}),e.jsx("line",{x1:"80",y1:"260",x2:"540",y2:"260",stroke:"#1a1a18",strokeWidth:"1.5",strokeOpacity:"0.15"}),e.jsx("path",{d:"M290,40 C290,40 340,60 348,90 C356,120 350,145 344,165 C338,180 334,190 338,205 C342,220 355,235 356,250 C357,255 345,258 290,260 C235,258 223,255 224,250 C225,235 238,220 242,205 C246,190 242,180 236,165 C230,145 224,120 232,90 C240,60 290,40 290,40 Z",fill:"#c94a2e",fillOpacity:"0.12",stroke:"#c94a2e",strokeWidth:"1.5"}),e.jsx("rect",{x:"275",y:"110",width:"30",height:"100",rx:"2",fill:"none",stroke:"#1a1a18",strokeWidth:"1.5",strokeOpacity:"0.25"}),e.jsx("line",{x1:"275",y1:"165",x2:"305",y2:"165",stroke:"#1a1a18",strokeWidth:"2",strokeOpacity:"0.4"}),e.jsx("line",{x1:"290",y1:"70",x2:"290",y2:"110",stroke:"#1a1a18",strokeWidth:"1",strokeOpacity:"0.2"}),e.jsx("line",{x1:"290",y1:"210",x2:"290",y2:"250",stroke:"#1a1a18",strokeWidth:"1",strokeOpacity:"0.2"}),e.jsx("circle",{cx:"290",cy:"165",r:"4",fill:"#c94a2e"}),e.jsx("line",{x1:"360",y1:"90",x2:"400",y2:"60",stroke:"#c94a2e",strokeWidth:"1.2"}),e.jsx("circle",{cx:"400",cy:"60",r:"4",fill:"#c94a2e"}),e.jsx("text",{x:"410",y:"57",fill:"#c94a2e",fontSize:"10",fontFamily:"DM Mono, monospace",children:"A"}),e.jsx("line",{x1:"310",y1:"165",x2:"400",y2:"165",stroke:"#2e7d52",strokeWidth:"1.2",strokeDasharray:"3,2"}),e.jsx("circle",{cx:"400",cy:"165",r:"4",fill:"#2e7d52"}),e.jsx("text",{x:"410",y:"162",fill:"#2e7d52",fontSize:"10",fontFamily:"DM Mono, monospace",children:"B"}),e.jsx("line",{x1:"310",y1:"130",x2:"380",y2:"110",stroke:"#6b6b67",strokeWidth:"1.2"}),e.jsx("circle",{cx:"380",cy:"110",r:"4",fill:"#6b6b67"}
1),e.jsx("text",{x:"390",y:"107",fill:"#6b6b67",fontSize:"10",fontFamily:"DM Mono, monospace",children:"C"}),e.jsx("line",{x1:"220",y1:"165",x2:"180",y2:"145",stroke:"#6b6b67",strokeWidth:"1.2"}),e.jsx("circle",{cx:"180",cy:"145",r:"4",fill:"#6b6b67"}),e.jsx("text",{x:"170",y:"142",textAnchor:"end",fill:"#6b6b67",fontSize:"10",fontFamily:"DM Mono, monospace",children:"D"}),e.jsx("line",{x1:"290",y1:"260",x2:"290",y2:"280",stroke:"#6b6b67",strokeWidth:"1.2"}),e.jsx("circle",{cx:"290",cy:"282",r:"4",fill:"#6b6b67"}),e.jsx("text",{x:"290",y:"296",textAnchor:"middle",fill:"#6b6b67",fontSize:"10",fontFamily:"DM Mono, monospace",children:"E"})]}),e.jsx("div",{className:"flex flex-wrap gap-3 mt-7",children:[{color:"#c94a2e",label:"A â Density curve (KDE):",desc:"The outer shape â width at any point shows how many data points fall near that value"},{color:"#2e7d52",label:"B â Median line:",desc:"The middle value of the dataset, shown as a horizontal line or dot inside the violin"},{color:"#6b6b67",label:"C â Interquartile range (IQR):",desc:"The inner box spans Q1 to Q3 â the middle 50% of data points"},{color:"#6b6b67",label:"D â Width = density:",desc:"Wider sections have more data concentrated at that value; narrower sections have less"},{color:"#6b6b67",label:"E â Category axis:",desc:"Each violin represents one group or category being compared"}].map((t,i)=>e.jsxs("div",{className:"flex items-center gap-2 bg-[var(--bg-alt)] rounded-[4px] px-[14px] py-2 text-[13px]",children:[e.jsx("span",{className:"w-[10px] h-[10px] rounded-full shrink-0",style:{background:t.color}}),e.jsxs("span",{className:"text-[var(--ink-muted)]",children:[e.jsx("strong",{className:"text-[var(--ink)] font-medium",children:t.label})," ",t.desc]})]},i))})]})]}),e.jsxs("section",{className:"py-14 border-b border-[var(--border-color)]",id:"when-to-use",children:[e.jsx("p",{className:"font-mono text-[10px] tracking-[0.14em] uppercase text-[var(--accent-color)] mb-3",children:"// 04 â Usage"}),e.jsx("h2",{className:"font-serif text-[28px] md:text-[30px] font-normal tracking-[-0.02em] text-[var(--ink)] mb-6 leading-[1.2]",children:"When to use it â and when not to"}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-5 mt-7",children:[e.jsxs("div",{className:"bg-[var(--green-light)] border border-[var(--green-border)] rounded-[10px] p-6",children:[e.jsxs("div",{className:"flex items-center gap-2 font-medium text-[14px] text-[var(--green)] mb-4",children:[e.jsx("span",{className:"w-[22px] h-[22px] rounded-full bg-[var(--green)] text-white flex items-center justify-center text-[12px] shrink-0",children:"✓"}),"Use a violin plot whenâ¦"]}),e.jsx("ul",{className:"flex flex-col gap-[10px] list-none",children:["You need to see the full shape of a distribution, not just a five-number summary","Your data may be bimodal or multimodal and you need to detect multiple peaks","Comparing distributions across 2â10 categories side by side","You have a large enough sample (n > 30) to produce a smooth density estimate","Your audience is comfortable with slightly technical visualizations","A box plot hides important details about your dataâs shape"].map((t,i)=>e.jsx("li",{className:"text-[14px] text-[var(--ink)] leading-[1.5] pl-4 relative font-light before:content-['â'] before:absolute before:left-0 before:text-[var(--ink-faint)]",children:t},i))})]}),e.jsxs("div",{className:"bg-[var(--red-light)] border border-[var(--red-border)] rounded-[10px] p-6",children:[e.jsxs("div",{className:"flex items-center gap-2 font-medium text-[14px] text-[var(--red)] mb-4",children:[e.jsx("span",{className:"w-[22px] h-[22px] rounded-full bg-[var(--red)] text-white flex items-center justify-center text-[12px] shrink-0",children:"Ã"}),"Avoid a violin plot whenâ¦"]}),e.jsx("ul",{className:"flex flex-col gap-[10px] list-none",children:["Your sample size is very small (n < 20) â the density estimate will be unreliable","Your audience is non-technical and unfamiliar with density curves","You have more than 10â12 groups â the chart becomes too crowded","A simple box plot already tells the story you need","Youâre comparing categorical proportions rather than continuous distributions","You need to show individual data points â consider a strip plot or beeswarm instead"].map((t,i)=>e.jsx("li",{className:"text-[14px] text-[var(--ink)] leading-[1.5] pl-4 relative font-light before:content-['â'] before:absolute before:left-0 before:text-[var(--ink-faint)]",children:t},i))})]})]})]}),e.jsxs("section",{className:"py-14 border-b border-[var(--border-color)]",id:"how-to-read",children:[e.jsx("p",{className:"font-mono text-[10px] tracking-[0.14em] uppercase text-[var(--accent-color)] mb-3",children:"// 05 â Reading guide"}),e.jsx("h2",{className:"font-serif text-[28px] md:text-[30px] font-normal tracking-[-0.02em] text-[var(--ink)] mb-6 leading-[1.2]",children:"How to read a violin plot"}),e.jsx("p",{className:"text-[16px] font-light text-[var(--ink)] leading-[1.75]",children:"Follow these steps whenever you encounter a violin plot in the wild."}),e.jsx("div",{className:"flex flex-col gap-5 mt-7",children:[{num:"1",title:"Read the axes and identify the groups",desc:"Understand whatâs being measured on the value axis and what categories are being compared. Each violin represents one groupâs full distribution."},{num:"2",title:"Look at the overall shape",desc:"Is the violin symmetric or skewed? A long tail upward means right-skewed data. A bulge in the middle means data is concentrated around the median. Two bulges means bimodal data â often the most interesting finding."},{num:"3",title:"Find the widest point",desc:"The widest part of the violin is the mode â where data is most concentrated. If there are multiple wide points, the data has multiple peaks, suggesting distinct subgroups."},{num:"4",title:"Check the median and IQR",desc:"Most violin plots include a small box plot or markers inside. The median line shows the center. The box (IQR) shows where the middle 50% of data lies. Compare these across violins for quick group-level comparison."},{num:"5",title:"Compare violins side by side",desc:"Look at the range (top to bottom of each violin), the shape (symmetric vs. skewed), and the concentration (wide vs. narrow). These three comparisons tell you how groups differ in spread, central tendency, and distributional shape."}].map(t=>e.jsxs("div",{className:"flex gap-5 items-start",children:[e.jsx("span",{className:"w-9 h-9 rounded-full bg-[var(--accent-color)] text-white font-mono text-[13px] font-medium flex items-center justify-center shrink-0 mt-[2px]",children:t.num}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-[15px] font-medium text-[var(--ink)] mb-1",children:t.title}),e.jsx("p",{className:"text-[14px] font-light text-[var(--ink-muted)] leading-[1.6]",children:t.desc})]})]},t.num))})]}),e.jsxs("section",{className:"py-14 border-b border-[var(--border-color)]",id:"common-mistakes",children:[e.jsx("p",{className:"font-mono text-[10px] tracking-[0.14em] uppercase text-[var(--accent-color)] mb-3",children:"// 06 â Common mistakes"}),e.jsx("h2",{className:"font-serif text-[28px] md:text-[30px] font-normal tracking-[-0.02em] text-[var(--ink)] mb-6 leading-[1.2]",children:"Mistakes to wat
1ch out for"}),e.jsx("div",{className:"flex flex-col gap-4 mt-7",children:[{title:"Using with too few data points",desc:"A kernel density estimate needs enough data to produce a reliable curve. With fewer than 20â30 points, the violin shape is mostly mathematical smoothing, not a reflection of the actual data. Use a strip plot or jittered dot plot for small samples instead."},{title:"Implied density beyond the data range",desc:"KDE smoothing can create âtailsâ that extend beyond the actual data range â for example, showing density below zero for data that canât be negative. Always check whether the violin extends into impossible values and trim if necessary."},{title:"Choosing a poor bandwidth",desc:"The bandwidth parameter controls how smooth the density curve is. Too smooth and you erase real peaks. Too rough and you see noise instead of signal. Most tools use sensible defaults, but always sanity-check whether the shape matches your data."},{title:"Comparing violins on different scales",desc:"If each violin is independently scaled to fill the same width, a group with high density at its peak looks the same as one with low density. Use a consistent scale across violins so width comparisons are meaningful."},{title:"Omitting the internal box plot",desc:"Without median and IQR markers inside the violin, readers lose the familiar summary statistics that make comparisons quick. Always include at least a median marker â and ideally the IQR box â inside each violin."}].map((t,i)=>e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--border-color)] border-l-[3px] border-l-[var(--accent-color)] rounded-r-[8px] px-5 py-[18px]",children:[e.jsx("h4",{className:"text-[14px] font-medium text-[var(--ink)] mb-[6px]",children:t.title}),e.jsx("p",{className:"text-[13px] font-light text-[var(--ink-muted)] leading-[1.6]",children:t.desc})]},i))})]}),e.jsxs("section",{className:"py-14 border-b border-[var(--border-color)]",id:"real-world-examples",children:[e.jsx("p",{className:"font-mono text-[10px] tracking-[0.14em] uppercase text-[var(--accent-color)] mb-3",children:"// 07 â Real-world examples"}),e.jsx("h2",{className:"font-serif text-[28px] md:text-[30px] font-normal tracking-[-0.02em] text-[var(--ink)] mb-6 leading-[1.2]",children:"Where youâll see violin plots used"}),e.jsx("div",{className:"flex flex-col gap-5 mt-7",children:[{num:"01",title:"Biomedical research: Gene expression across tissues",desc:"Researchers plot the expression level of a gene across different tissue types (brain, liver, muscle). The violin shape instantly reveals whether expression is uniform or bimodal â a crucial distinction when identifying tissue-specific genes. Box plots would mask this bimodality entirely.",tag:"Genomics"},{num:"02",title:"Tech: API response time by region",desc:"A site reliability team compares p50/p95/p99 latency across data centers. Violin plots reveal that one region has a bimodal distribution â most requests are fast, but a subpopulation hits a slow cache path. This insight drives targeted optimization.",tag:"Performance Engineering"},{num:"03",title:"Education: Test score distributions by school",desc:"An education policy study compares standardized test scores across 8 schools. Violin plots show that two schools with similar median scores have dramatically different shapes â one has a tight cluster around the median while another is bimodal with distinct high- and low-performing groups.",tag:"Education Research"}].map(t=>e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--border-color)] rounded-[10px] p-6 grid grid-cols-[48px_1fr] gap-4 items-start",children:[e.jsx("span",{className:"font-serif text-[32px] font-semibold text-[var(--accent-mid)] leading-none mt-1",children:t.num}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-[15px] font-medium text-[var(--ink)] mb-[6px]",children:t.title}),e.jsx("p",{className:"text-[14px] font-light text-[var(--ink-muted)] leading-[1.65]",children:t.desc}),e.jsx("span",{className:"inline-block mt-[10px] font-mono text-[9px] tracking-[0.1em] uppercase bg-[var(--bg-alt)] text-[var(--ink-muted)] px-2 py-[3px] rounded-[3px]",children:t.tag})]})]},t.num))})]}),e.jsxs("section",{className:"py-14 border-b border-[var(--border-color)]",id:"key-facts",children:[e.jsx("p",{className:"font-mono text-[10px] tracking-[0.14em] uppercase text-[var(--accent-color)] mb-3",children:"// 08 â At a glance"}),e.jsx("h2",{className:"font-serif text-[28px] md:text-[30px] font-normal tracking-[-0.02em] text-[var(--ink)] mb-6 leading-[1.2]",children:"Qu
1ick reference"}),e.jsx("div",{className:"mt-7 flex flex-col border border-[var(--border-color)] rounded-[10px] overflow-hidden",children:[{label:"Also known as",val:"Violin chart, density box plot, KDE plot"},{label:"Invented by",val:"Jerry Hintze & Ray Nelson, 1998"},{label:"Best for",val:"Showing the full distributional shape of continuous data across categories"},{label:"Data types",val:e.jsxs(e.Fragment,{children:[e.jsx("strong",{className:"font-medium",children:"Continuous numeric"})," variable grouped by a ",e.jsx("strong",{className:"font-medium",children:"categorical"})," variable"]})},{label:"Recommended groups",val:"2 â 10 categories for readability"},{label:"Min sample size",val:e.jsxs(e.Fragment,{children:[e.jsx("strong",{className:"font-medium",children:"~30+ per group"})," for reliable density estimation"]})},{label:"Common tools",val:"Seaborn (Python), ggplot2, D3.js, Plotly, Matplotlib, Vega-Lite"},{label:"Common mistakes",val:"Too few data points, poor bandwidth, density beyond range, missing median"}].map((t,i)=>e.jsxs("div",{className:"flex bg-[var(--bg-card)] border-b border-[var(--border-color)] last:border-b-0 px-[18px] py-[14px]",children:[e.jsx("span",{className:"font-mono text-[11px] tracking-[0.06em] text-[var(--ink-faint)] uppercase w-[140px] shrink-0 pt-[2px]",children:t.label}),e.jsx("span",{className:"text-[14px] text-[var(--ink)] font-light leading-[1.6]",children:t.val})]},i))})]}),e.jsxs("section",{className:"py-14 border-b border-[var(--border-color)]",id:"variations",children:[e.jsx("p",{className:"font-mono text-[10px] tracking-[0.14em] uppercase text-[var(--accent-color)] mb-3",children:"// 09 â Variations"}),e.jsx("h2",{className:"font-serif text-[28px] md:text-[30px] font-normal tracking-[-0.02em] text-[var(--ink)] mb-6 leading-[1.2]",children:"Types of violin plots"}),e.jsx("p",{className:"text-[16px] font-light text-[var(--ink)] leading-[1.75]",children:"The basic violin plot has several important variants, each suited to slightly different data situations."}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 mt-7",children:[e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--border-color)] rounded-[10px] p-5 cursor-pointer hover:border-[var(--accent-border-hover)] hover:-translate-y-[2px] transition-all duration-150",children:[e.jsx("div",{className:"h-[60px] mb-3 flex items-end gap-[6px]",children:e.jsxs("svg",{viewBox:"0 0 120 60",width:"120",height:"60",children:[e.jsx("path",{d:"M60,5 C60,5 80,15 84,25 C88,35 85,42 80,50 C77,55 70,58 60,60 L60,5 Z",fill:"#c94a2e",fillOpacity:"0.2",stroke:"#c94a2e",strokeWidth:"1"}),e.jsx("path",{d:"M60,8 C60,8 40,18 36,28 C32,38 38,46 44,52 C48,56 55,58 60,60 L60,8 Z",fill:"#f5ede9",stroke:"#e8c4b8",strokeWidth:"1"}),e.jsx("line",{x1:"60",y1:"5",x2:"60",y2:"60",stroke:"#1a1a18",strokeWidth:"0.5",strokeOpacity:"0.2"})]})}),e.jsx("p",{className:"text-[13px] font-medium text-[var(--ink)] mb-1",children:"Split violin plot"}),e.jsx("p",{className:"text-[12px] text-[var(--ink-muted)] font-light leading-[1.5]",children:"Shows two groups in a single violin â one on each side of the center line. Perfect for direct A/B comparisons."})]}),e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--border-color)] rounded-[10px] p-5 cursor-pointer hover:border-[var(--accent-border-hover)] hover:-translate-y-[2px] transition-all duration-150",children:[e.jsx("div",{className:"h-[60px] mb-3 flex items-end gap-[6px]",children:e.jsxs("svg",{viewBox:"0 0 120 60",width:"120",height:"60",children:[e.jsx("path",{d:"M50,5 C50,5 75,15 80,28 C85,40 78,50 65,56 C58,58 52,59 50,60 L50,5 Z",fill:"#c94a2e",fillOpacity:"0.15",stroke:"#c94a2e",strokeWidth:"1"}),e.jsx("rect",{x:"42",y:"18",width:"6",height:"28",rx:"1",fill:"none",stroke:"#c94a2e",strokeWidth:"1"}),e.jsx("line",{x1:"42",y1:"32",x2:"48",y2:"32",stroke:"#c94a2e",strokeWidth:"1.5"}),e.jsx("circle",{cx:"30",cy:"15",r:"2",fill:"#c94a2e",fillOpacity:"0.4"}),e.jsx("circle",{cx:"28",cy:"22",r:"2",fill:"#c94a2e",fillOpacity:"0.4"}),e.jsx("circle",{cx:"32",cy:"28",r:"2",fill:"#c94a2e",fillOpacity:"0.4"}),e.jsx("circle",{cx:"29",cy:"34",r:"2",fill:"#c94a2e",fillOpacity:"0.4"}),e.jsx("circle",{cx:"33",cy:"40",r:"2",fill:"#c94a2e",fillOpacity:"0.4"}),e.jsx("circle",{cx:"30",cy:"46",r:"2",fill:"#c94a2e",fillOpacity:"0.4"}),e.jsx("circle",{cx:"27",cy:"52",r:"2",fill:"#c94a2e",fillOpacity:"0.4"})]})}),e.jsx("p",{className:"text-[13px] font-medium text-[var(--ink)] mb-1",children:"Raincloud plot"}),e.jsx("p",{className:"text-[12px] text-[var(--ink-muted)] font-light leading-[1.5]",children:"Combines a half-violin, a box plot, and jittered raw data points. Shows the density, summary stats, and individual observations all at once."})]}),e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--border-color)] rounded-[10px] p-5 cursor-pointer hover:border-[var(--accent-border-hover)] hover:-translate-y-[2px] transition-all duration-150",children:[e.jsx("div",{className:"h-[60px] mb-3 flex items-end gap-[6px]",children:e.jsxs("svg",{viewBox:"0 0 120 60",width:"120",height:"60",children:[e.jsx("path",{d:"M60,5 C60,5 85,18 88,30 C91,42 82,52 70,56 C65,58 62,59 60,60 C58,59 55,58 50,56 C38,52 29,42 32,30 C35,18 60,5 60,5 Z",fill:"#f5ede9",stroke:"#e8c4b8",strokeWidth:"1"}),e.jsx("circle",{cx:"60",cy:"12",r:"1.5",fill:"#c94a2e"}),e.jsx("circle",{cx:"57",cy:"20",r:"1.5",fill:"#c94a2e"}),e.jsx("circle",{cx:"63",cy:"25",r:"1.5",fill:"#c94a2e"}),e.jsx("circle",{cx:"55",cy:"30",r:"1.5",fill:"#c94a2e"}),e.jsx("circle",{cx:"65",cy:"32",r:"1.5",fill:"#c94a2e"}),e.jsx("circle",{cx:"58",cy:"36",r:"1.5",fill:"#c94a2e"}),e.jsx("circle",{cx:"62",cy:"40",r:"1.5",fill:"#c94a2e"}),e.jsx("circle",{cx:"60",cy:"45",r:"1.5",fill:"#c94a2e"}),e.jsx("circle",{cx:"57",cy:"50",r:"1.5",fill:"#c94a2e"}),e.jsx("circle",{cx:"61",cy:"55",r:"1.5",fill:"#c94a2e"})]})}),e.jsx("p",{className:"text-[13px] font-medium text-[var(--ink)] mb-1",children:"Violin with strip plot"}),e.jsx("p",{className:"text-[12px] text-[var(--ink-muted)] font-light leading-[1.5]",children:"Overlays individual data points inside the violin. Best for moderate sample sizes where seeing raw data adds insight."})]}),e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--border-color)] rounded-[10px] p-5 cursor-pointer hover:border-[var(--accent-border-hover)] hover:-translate-y-[2px] transition-all duration-150",children:[e.jsx("div",{className:"h-[60px] mb-3 flex items-end gap-[6px]",children:e.jsxs("svg",{viewBox:"0 0 120 60",width:"120",height:"60",children:[e.jsx("path",{d:"M10,20 C10,20 25,8 45,5 C65,2 80,8 95,14 C105,18 112,20 115,20 C112,20 105,22 95,26 C80,32 65,38 45,35 C25,32 10,20 10,20 Z",fill:"#c94a2e",fillOpacity:"0.15",stroke:"#c94a2e",strokeWidth:"1"}),e.jsx("path",{d:"M10,42 C10,42 30,35 50,33 C70,31 85,34 100,38 C108,40 113,42 115,42 C113,42 108,44 100,46 C85,50 70,53 50,51 C30,49 10,42 10,42 Z",fill:"#f5ede9",stroke:"#e8c4b8",strokeWidth:"1"}),e.jsx("line",{x1:"0",y1:"0",x2:"0",y2:"60",stroke:"#1a1a18",strokeWidth:"0.5",strokeOpacity:"0.2"})]})}),e.jsx("p",{className:"text-[13px] font-medium text-[var(--ink)] mb-1",children:"Horizontal violin plot"}),e.jsx("p",{className:"text-[12px] text-[var(--ink-muted)] font-light leading-[1.5]",children:"Rotates violins to run left-to-right. Useful when category labels are long or when comparing many groups vertically."})]})]})]}),e.jsx(h,{faqs:s,sectionNumber:10}),e.jsxs("section",{className:"py-14 pb-[72px]",id:"related-charts",children:[e.jsx("p",{className:"font-mono text-[10px] tracking-[0.14em] uppercase text-[var(--accent-color)] mb-3",children:"// 11 â Related charts"}),e.jsx("h2",{className:"font-serif text-[26px] md:text-[28px] font-normal tracking-[-0.02em] text-[var(--ink)] mb-7 leading-[1.2]",children:"You might also needâ¦"}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[e.jsxs(r,{href:"/box-plot",className:"bg-[var(--bg-card)] border border-[var(--border-color)] rounded-[10px] p-6 px-5 cursor-pointer hover:border-[var(--accent-border-hover)] hover:-translate-y-[2px] hover:shadow-[var(--shadow-card)] transition-all duration-150 no-underline",children:[e.jsx("div",{className:"h-[72px] mb-4 flex items-center justify-center",children:e.jsxs("svg",{viewBox:"0 0 100 60",width:"100",height:"60",children:[e.jsx("line",{x1:"50",y1:"6",x2:"50",y2:"18",stroke:"#c94a2e",strokeWidth:"1.5"}),e.jsx("rect",{x:"30",y:"18",width:"40",height:"24",rx:"2",fill:"none",stroke:"#c94a2e",strokeWidth:"2"}),e.jsx("line",{x1:"30",y1:"32",x2:"70",y2:"32",stroke:"#c94a2e",strokeWidth:"2"}),e.jsx("line",{x1:"50",y1:"42",x2:"50",y2:"54",stroke:"#c94a2e",strokeWidth:"1.5"}),e.jsx("line",{x1:"38",y1:"6",x2:"62",y2:"6",stroke:"#c94a2e",strokeWidth:"1.5"}),e.jsx("line",{x1:"38",y1:"54",x2:"62",y2:"54",stroke:"#c94a2e",strokeWidth:"1.5"})]})}),e.jsx("p",{className:"text-[14px] font-medium text-[var(--ink)] mb-1",children:"Box plot"}),e.jsx("p",{className:"text-[12px] text-[var(--ink-muted)] font-light leading-[1.5]",children:"When you need a simpler summary of distribution and your audience prefers familiar statistical formats."}),e.jsx("span",{className:"inline-block mt-[10px] font-mono text-[9px] tracking-[0.1em] uppercase text-[var(--accent-color)] bg-[var(--accent-light)] px-2 py-[3px] rounded-[3px]",children:"Distribution"})]}),e.jsxs(r,{href:"/histogram",className:"bg-[var(--bg-card)] border border-[var(--border-color)] rounded-[10px] p-6 px-5 cursor-pointer hover:border-[var(--accent-border-hover)] hover:-translate-y-[2px] hover:shadow-[var(--shadow-card)] transition-all duration-150 no-underline",children:[e.jsx("div",{className:"h-[72px] mb-4 flex items-center justify-center",children:e.jsxs("svg",{viewBox:"0 0 100 60",width:"100",height:"60",children:[e.jsx("rect",{x:"6",y:"48",width:"14",height:"12",rx:"1",fill:"#f5ede9"}),e.jsx("rect",{x:"22",y:"34",width:"14",height:"26",rx:"1",fill:"#f5ede9"}),e.jsx("rect",{x:"38",y:"10",width:"14",height:"50",rx:"1",fill:"#c94a2e"}),e.jsx("rect",{x:"54",y:"18",width:"14",height:"42",rx:"1",fill:"#f5ede9"}),e.jsx("rect",{x:"70",y:"30",width:"14",height:"30",rx:"1",fill:"#f5ede9"}),e.jsx("rect",{x:"86",y:"46",width:"14",height:"14",rx:"1",fill:"#f5ede9"}),e.jsx("line",{x1:"0",y1:"60",x2:"100",y2:"60",stroke:"#1a1a18",strokeWidth:"0.5",strokeOpacity:"0.15"})]})}),e.jsx("p",{className:"text-[14px] font-medium text-[var(--ink)] mb-1",children:"Histogram"}),e.jsx("p",{className:"text-[12px] text-[var(--ink-muted)] font-light leading-[1.5]",children:"When you want to see the distribution of a single variable without grouping by category."}),e.jsx("span",{className:"inline-block mt-[10px] font-mono text-[9px] tracking-[0.1em] uppercase text-[var(--accent-color)] bg-[var(--accent-light)] px-2 py-[3px] rounded-[3px]",children:"Distribution"})]}),e.jsxs(r,{href:"/bar-chart",className:"bg-[var(--bg-card)] border border-[var(--border-color)] rounded-[10px] p-6 px-5 cursor-pointer hover:border-[var(--accent-border-hover)] hover:-translate-y-[2px] hover:shadow-[var(--shadow-card)] transition-all duration-150 no-underline",children:[e.jsx("div",{className:"h-[72px] mb-4 flex items-center justify-center",children:e.jsxs("svg",{viewBox:"0 0 100 60",width:"100",height:"60",children:[e.jsx("rect",{x:"8",y:"24",width:"14",height:"36",rx:"2",fill:"#f5ede9"}),e.jsx("rect",{x:"26",y:"10",width:"14",height:"50",rx:"2",fill:"#c94a2e"}),e.jsx("rect",{x:"44",y:"32",width:"14",height:"28",rx:"2",fill:"#f5ede9"}),e.jsx("rect",{x:"62",y:"16",width:"14",height:"44",rx:"2",fill:"#f5ede9"}),e.jsx("rect",{x:"80",y:"38",width:"14",height:"22",rx:"2",fill:"#f5ede9"}),e.jsx("line",{x1:"0",y1:"60",x2:"100",y2:"60",stroke:"#1a1a18",strokeWidth:"0.5",strokeOpacity:"0.15"})]})}),e.jsx("p",{className:"text-[14px] font-medium text-[var(--ink)] mb-1",children:"Bar chart"}),e.jsx("p",{className:"text-[12px] text-[var(--ink-muted)] font-light leading-[1.5]",children:"When you need to compare single summary values (means, totals) across categories rather than full distributions."}),e.jsx("span",{className:"inline-block mt-[10px] font-mono text-[9px] tracking-[0.1em] uppercase text-[var(--accent-color)] bg-[var(--accent-light)] px-2 py-[3px] rounded-[3px]",children:"Comparison"})]})]})]})]}),e.jsxs("aside",{className:"hidden md:block sticky top-[80px]",children:[e.jsxs("div",{className:"mt-12 mb-7",children:[e.jsx("p",{className:"font-mono text-[10px] tracking-[0.12em] uppercase text-[var(--ink-faint)] mb-[14px] pb-[10px] border-b border-[var(--border-color)]",children:"On this page"}),e.jsx("ul",{className:"list-none",children:f.map(t=>e.jsx("li",{className:"mb-[2px]",children:e.jsx("a",{href:`#${t.id}`,className:"block text-[13px] text-[var(--ink-muted)] no-underline py-[5px] pl-3 -ml-3 border-l-2 border-transparent hover:text-[var(--ink)] hover:border-l-[var(--accent-color)] transition-all duration-150 leading-[1.4]",children:t.label})},t.id))})]}),e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--border-color)] rounded-[10px] overflow-hidden mb-5",children:[e.jsx("div",{className:"bg-[var(--ink)] px-[18px] py-[14px] font-mono text-[10px] tracking-[0.12em] uppercase text-[var(--white-muted)]",children:"// At a glance"}),e.jsx("div",{children:[{label:"Category",val:"Distribution",color:""},{label:"Difficulty",val:"Intermediate",color:"text-[var(--caution)]"},{label:"Min sample",val:"~30 per group",color:""},{label:"Shows shape?",val:"Yes (full density)",color:"text-[var(--green)]"},{label:"Max groups",val:"~10 before crowding",color:"text-[var(--caution)]"},{label:"Invented",val:"1998",color:""}].map((t,i)=>e.jsxs("div",{className:"px-[18px] py-[14px] border-b border-[var(--border-color)] last:border-b-0 flex flex-col gap-[2px]",children:[e.jsx("span",{className:"text-[11px] text-[var(--ink-faint)] font-mono tracking-[0.05em]",children:t.label}),e.jsx("span",{className:`text-[14px] text-[var(--ink)] ${t.color}`,children:t.val})]},i))})]}),e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--border-color)] rounded-[10px] overflow-hidden mb-5",children:[e.jsx("div",{className:"bg-[var(--ink)] px-[18px] py-[14px] font-mono text-[10px] tracking-[0.12em] uppercase text-[var(--white-muted)]",children:"// Tags"}),e.jsx("div",{className:"px-[18px] py-4",children:e.jsx("div",{className:"flex flex-wrap gap-[6px]",children:["Distribution","Density","KDE","Intermediate","Statistical","Bimodal","Comparison"].map(t=>e.jsx("span",{className:"font-mono text-[10px] tracking-[0.06em] uppercase bg-[var(--bg-alt)] text-[var(--ink-muted)] px-[10px] py-1 rounded-[3px]",children:t},t))})})]}),e.jsxs("div",{className:"bg-[var(--bg-card)] border border-[var(--border-color)] rounded-[10px] overflow-hidden mb-5",children:[e.jsx("div",{className:"bg-[var(--ink)] px-[18px] py-[14px] font-mono text-[10px] tracking-[0.12em] uppercase text-[var(--white-muted)]",children:"// Similar charts"}),e.jsx("div",{className:"py-1",children:["Box plot","Histogram","Density plot","Beeswarm plot","Ridgeline plot"].map((t,i,o)=>e.jsxs("span",{className:`flex items-center justify-between px-[18px] py-3 text-[13px] text-[var(--ink-muted)] hover:text-[var(--accent-color)] transition-colors duration-150 cursor-pointer ${i<o.length-1?"border-b border-[var(--border-color)]":""}`,children:[t," ",e.jsx("span",{children:"â"})]},t))})]})]})]})]}),e.jsxs("div",{className:"border-t border-[var(--border-color)] bg-[var(--bg-card)] px-6 md:px-12 py-5 flex items-center justify-between",children:[e.jsx("div",{className:"flex gap-8",children:e.jsxs(r,{href:"/bubble-chart",className:"text-[13px] text-[var(--ink-muted)] flex items-center gap-[6px] no-u
1nderline hover:text-[var(--ink)] transition-colors duration-150",children:[e.jsx("span",{className:"text-[var(--accent-color)]",children:"â"})," Previous: Bubble chart"]})}),e.jsx("span",{className:"font-mono text-[11px] text-[var(--ink-faint)] hidden md:block",children:"Distribution chart"}),e.jsx("div",{className:"flex gap-8",children:e.jsxs(r,{href:"/histogram",className:"text-[13px] text-[var(--ink-muted)] flex items-center gap-[6px] no-underline hover:text-[var(--ink)] transition-colors duration-150",children:["Next: Histogram ",e.jsx("span",{className:"text-[var(--accent-color)]",children:"â"})]})})]})]})}export{j as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.