Pareto and histogram
Pareto charts of defects or causes with the vital few, and histograms of measurements, both by group, from data pasted from Excel or CSV.
Pareto input
Paste, open a CSV, TSV, TXT or XLSX file (up to 20 MB), or drop it on the field. Files are read in this browser only.
Defect Line Count Solder bridge SMT-1 48 Tombstone SMT-1 22
1 row = 1 defect type
Columns: tab, ; or ,
Decimals: 12,5 or 12.5
Read as: tab-separated · whole numbers · 18 rows · header row skipped
| # | Defect | Count | Group |
|---|---|---|---|
| 1 | Insufficient solder | 31 | SMT-1 |
| 2 | Solder bridge | 48 | SMT-1 |
| 3 | Solder balls | 7 | SMT-1 |
| 4 | Tombstone | 22 | SMT-1 |
| 5 | Misalignment | 9 | SMT-1 |
| 6 | Missing component | 12 | SMT-1 |
| 7 | Wrong polarity | 3 | SMT-1 |
| 8 | Lifted lead | 2 | SMT-1 |
| 9 | Damaged component | 1 | SMT-1 |
| 10 | Insufficient solder | 41 | SMT-2 |
+8 more rows
One row per defect found (Defect, and a Group such as the line if you like), or one row per defect type with its Count. Choose “(none)” for Count when every row is one occurrence. A Cost column (the cost of one occurrence) gives a cost-weighted Pareto. Comma-separated data without numbers: choose Columns “Comma”.
Runs in this browser. Data is not uploaded or stored.
Pareto results
4 of 9 categories
4 of 9 categories make up 81.0% of all defects: Insufficient solder, Solder bridge, Tombstone, Misalignment.
Counts · largest first · combined into Other after 95% · 237 defects · 9 categories · 2 groups, same order
| Category | Count | Percent | Cum % | Vital few |
|---|---|---|---|---|
| Insufficient solder | 72 | 30.4 | 30.4 | yes |
| Solder bridge | 65 | 27.4 | 57.8 | yes |
| Tombstone | 31 | 13.1 | 70.9 | yes |
| Misalignment | 24 | 10.1 | 81.0 | yes |
| Missing component | 20 | 8.4 | 89.5 | |
| Solder balls | 12 | 5.1 | 94.5 | |
| Wrong polarity | 7 | 3.0 | 97.5 | |
| Other — Damaged component, Lifted lead | 6 | 2.5 | 100.0 |
| Group | Count | Percent of all | Vital few |
|---|---|---|---|
| SMT-1 | 135 | 57.0 | 4 of 9 (83.7%): Solder bridge, Insufficient solder, Tombstone, Missing component |
| SMT-2 | 102 | 43.0 | 4 of 9 (80.4%): Insufficient solder, Solder bridge, Misalignment, Tombstone |
| Category | Count | Percent | Cum % | Vital few |
|---|---|---|---|---|
| Insufficient solder | 31 | 23.0 | 23.0 | yes |
| Solder bridge | 48 | 35.6 | 58.5 | yes |
| Tombstone | 22 | 16.3 | 74.8 | yes |
| Misalignment | 9 | 6.7 | 81.5 | |
| Missing component | 12 | 8.9 | 90.4 | yes |
| Solder balls | 7 | 5.2 | 95.6 | |
| Wrong polarity | 3 | 2.2 | 97.8 | |
| Other — Damaged component, Lifted lead | 3 | 2.2 | 100.0 |
| Category | Count | Percent | Cum % | Vital few |
|---|---|---|---|---|
| Insufficient solder | 41 | 40.2 | 40.2 | yes |
| Solder bridge | 17 | 16.7 | 56.9 | yes |
| Tombstone | 9 | 8.8 | 65.7 | yes |
| Misalignment | 15 | 14.7 | 80.4 | yes |
| Missing component | 8 | 7.8 | 88.2 | |
| Solder balls | 5 | 4.9 | 93.1 | |
| Wrong polarity | 4 | 3.9 | 97.1 | |
| Other — Damaged component, Lifted lead | 3 | 2.9 | 100.0 |
Histogram input
Paste, open a CSV, TSV, TXT or XLSX file (up to 20 MB), or drop it on the field. Files are read in this browser only.
Machine Diameter M1 25.002 M2 24.996 M3 25.004
1 row = 1 measurement
Columns: tab, ; or ,
Decimals: 12,5 or 12.5
Read as: tab-separated · decimal point · 120 rows · header row skipped
| # | Measurement | Group |
|---|---|---|
| 1 | 24.998 | M1 |
| 2 | 24.992 | M2 |
| 3 | 25.010 | M3 |
| 4 | 25.001 | M1 |
| 5 | 24.999 | M2 |
| 6 | 25.003 | M3 |
| 7 | 25.004 | M1 |
| 8 | 24.993 | M2 |
| 9 | 25.008 | M3 |
| 10 | 25.003 | M1 |
+110 more rows
One measurement per row, with a Group column (machine, cavity, shift) if you like; choose “(none)” for Group to see all data as one.
Runs in this browser. Data is not uploaded or stored.
Histogram results
120 values in 3 groups
12 bins of width 0.003 from 24.9785 · automatic · the same bins for every group · LSL 24.985 · USL 25.015
| Group | N | Mean | StDev | Min | Q1 | Median | Q3 | Max | AD A² | AD p |
|---|---|---|---|---|---|---|---|---|---|---|
| M1 | 40 | 25.0009 | 0.00421 | 24.994 | 24.9973 | 25.001 | 25.003 | 25.013 | 0.423 | 0.306 |
| M2 | 40 | 24.9949 | 0.006007 | 24.979 | 24.9913 | 24.995 | 24.999 | 25.005 | 0.332 | 0.503 |
| M3 | 40 | 25.0041 | 0.002472 | 25 | 25.002 | 25.004 | 25.006 | 25.01 | 0.410 | 0.328 |
| All groups | 120 | 24.9999 | 0.005874 | 24.979 | 24.9962 | 25.001 | 25.004 | 25.013 | 1.900 | < 0.005 |
| Bin | M1 | M2 | M3 | All |
|---|---|---|---|---|
| 24.9785 – 24.9815 | 0 | 1 | 0 | 1 |
| 24.9815 – 24.9845 | 0 | 2 | 0 | 2 |
| 24.9845 – 24.9875 | 0 | 2 | 0 | 2 |
| 24.9875 – 24.9905 | 0 | 2 | 0 | 2 |
| 24.9905 – 24.9935 | 0 | 10 | 0 | 10 |
| 24.9935 – 24.9965 | 7 | 6 | 0 | 13 |
| 24.9965 – 24.9995 | 8 | 9 | 0 | 17 |
| 24.9995 – 25.0025 | 10 | 4 | 11 | 25 |
| 25.0025 – 25.0055 | 11 | 4 | 16 | 31 |
| 25.0055 – 25.0085 | 2 | 0 | 12 | 14 |
| 25.0085 – 25.0115 | 1 | 0 | 1 | 2 |
| 25.0115 – 25.0145 | 1 | 0 | 0 | 1 |
Download offline versionSingle HTML file · v1.4 · 578 KB · works without internet
Method
- Two analyses on one page: the “Analysis” switch shows the Pareto chart or the histogram. Each keeps its own data and settings; the settings file saves both and the chosen one.
- Pareto data: one row per defect found (Defect, optional Group), or one row per defect type with its Count, as Minitab's “Chart defects data in” and “Frequencies in”. Rows of the same defect add up. With a Cost column every row weighs count × cost (the cost of one occurrence), so the bars rank the cost, not the number. Labels are trimmed and case-sensitive (“Dent” and “dent” are two categories, and the tool says so).
- Bars and cumulative percent, as Minitab's Pareto Chart: the bars are sorted largest first, ties by label in Unicode order (capital letters before small ones), or kept in the order of first appearance (“As entered”). The left axis runs from 0 to the total and the right axis from 0 to 100 %, so the cumulative line ends in the top right corner. Percent = category / total × 100; Cum % is the running sum in bar order.
- Other: Minitab's “Combine remaining defects into one category after this percent”, default 95. Bars are kept until the cumulative percent reaches the value (≥); every later category goes into one bar “Other”, always last, even when that is a single category. A category already called “Other” in the data (any case) is put into that bar too. 100 combines nothing. Categories with a total of 0 are not drawn.
- Vital few: the smallest number of categories, largest first, whose cumulative percent reaches 80 % (Juran's Pareto principle), counted over the categories themselves, not the combined bar. Their bars are orange and marked in the table. It is a rule of thumb for where to start, not a statistical test.
- Groups (Minitab's “By variable”): a chart for every group follows the chart of all data. By default every group keeps the bar order of the totals of all groups, so a category stands in the same place in every chart and “Other” holds the same categories; “Each group in its own order” sorts and combines every group by itself. Every chart has its own axes (0 to its total), so compare the sizes of the groups in “Totals by group”, not by bar height. Separate labelled charts were chosen over one chart of stacked or side-by-side bars: stacked bars hide the order within a group, and side-by-side bars need colours to tell the groups apart.
- Histogram data: one measurement per row, with an optional Group column (machine, cavity, shift). Bins are the same for every group, so the groups compare. Automatic: as in the Cpk and Type 1 gage tools, the Freedman–Diaconis count range / (2 · IQR · n^−1/3) limited to 5–25; when the data lie on a resolution grid the width is a whole number of steps and the edges lie half a step between possible values. Number of bins k: k equal bins from the smallest to the largest value (as numpy.histogram). Bin width w and start s: an empty start is the largest multiple of w at or below the smallest value; bins follow until the largest. A bin holds its lower edge; the last bin also its upper edge. Minitab chooses its own rounded midpoints, so its bins can differ: use width and start to match a Minitab graph.
- Display: panels with shared axes (one per group, the same x and y scale), or the outlines of all groups on one chart, told apart by line style (solid, dashed, dotted, dash-dot, long dashes, thin) and named in the legend. The fitted normal curve of a group is n · w · φ((x − x̄) / s) / s with the group's own mean and standard deviation. LSL and USL are drawn as lines only; for capability indices use the Cpk / Ppk tool.
- Statistics per group and for all data: N, mean, StDev (n − 1), minimum, Q1, median, Q3 and maximum. Quartiles as Minitab: the value at position (n + 1) p of the sorted data, interpolated between the two values around it (for 1, 2, …, 10: Q1 2.75, median 5.5, Q3 8.25); this is numpy's method “weibull” (Hyndman & Fan type 6), not Excel's QUARTILE.INC.
- Normality: the Anderson-Darling test of the Cpk tool, A² with the group's mean and s, p-value from D'Agostino & Stephens for the adjusted A*² = A² (1 + 0.75/n + 2.25/n²); p < 0.05 suggests the group is not normal. It needs 3 or more values; p below 0.005 is shown as “< 0.005”, as Minitab does.
- Checks: sorted counts, percents, the “Other” rule, the vital few, bins and counts per group, quartiles, means, standard deviations and the Anderson-Darling values are compared with an independent Python script (pandas, numpy.histogram and numpy.percentile, scipy and statsmodels) for the examples, raw rows with ties and an own “other” category, costs, computed values without a resolution grid, and values on bin edges.
- Examples: synthetic data, not from a real plant. Pareto: AOI defects of two SMT lines in one week. Histogram: bore diameters of 40 parts from each of three machines (25.000 ± 0.015 mm).
- Files: CSV, TSV and TXT are read as if pasted (UTF-8, UTF-16, otherwise Windows-1257). XLSX: choose the sheet and the columns or a cell range; formula cells use the value Excel last saved, dates are kept as text. Files up to 20 MB are read in this browser only and never uploaded.
- XLSX files are read with SheetJS Community Edition 0.20.3, Apache License 2.0 (license), loaded only when an Excel file is opened or created.