CYBER-STATISTICS TERMINAL // DESCRIPTIVE ANALYSIS

Generated by statistical-calculators.site

PLOT CONFIGURATION (optional)

Want your own chart titles? Type a title into any box below and it will appear on that chart when you press EXECUTE. Leave a box empty to keep the default title (shown in grey).

OUTPUT: Analysis Results

Summary Statistics

Frequency Table

VISUALIZATION: Data Plots

How to Use This Calculator

  1. Enter your data. Type or paste your numbers into the input box, separated by commas or spaces.
  2. Name your charts (optional). In Plot Configuration, type a custom title for any chart, or leave the boxes empty to use the default titles.
  3. Run the calculation. Click the Execute button to calculate the statistics and generate the plots.
  4. Review the results. The summary shows the count, sum, minimum, maximum, range, mean, median, mode(s), and the sample variance and standard deviation. The frequency table lists each value with its relative frequency, or groups the data into 7 intervals when there are more than 25 distinct values. Below it you will find a density plot (a histogram scaled to probability density), a dot plot, two box plots (with and without the data points; the box plots mark the mean and standard deviation), and a histogram or bar chart.
  5. Export (optional). Capture Summary (PNG) saves the statistics and frequency table as an image, and Generate Full Report (PDF) saves all panels in one document.

How to Calculate Descriptive Statistics in R, Python, SPSS, JMP, JASP and jamovi

The variance and standard deviation in this calculator are sample statistics (divided by n − 1). Below is how to get the same numbers, a frequency table and the main plots in the most common statistics programs. In all of them, keep your data in a single column of numbers.

R / RStudio

In RStudio, paste the code into a script and run it with Ctrl+Enter (Cmd+Enter on Mac). Everything below is base R, so no packages are needed.

x <- c(10, 25, 13, 42, 55, 25, 13, 8, 9, 11, 15, 18, 22, 26, 30,
       35, 40, 45, 50, 60, 70, 80, 90, 100, 110, 120, 5, 15, 25, 35, 45)

n <- length(x)
n; sum(x); min(x); max(x); diff(range(x))   # count, sum, min, max, range
mean(x); median(x)
var(x); sd(x)                                # sample variance and SD (n - 1)

# Mode(s): every value with the highest frequency
freq  <- table(x)
modes <- as.numeric(names(freq)[freq == max(freq)])
modes

# Frequency table with relative frequencies (%)
data.frame(value     = as.numeric(names(freq)),
           frequency = as.vector(freq),
           rel_freq  = round(100 * as.vector(freq) / n, 2))

summary(x)   # min, quartiles, median, mean, max in one call

Plots:

par(mfrow = c(1, 3))
hist(x, freq = FALSE, main = "Density histogram", xlab = "Value")
boxplot(x, main = "Box plot", ylab = "Value")
stripchart(x, method = "stack", pch = 19, main = "Dot plot", xlab = "Value")

R has no built-in function for the statistical mode (mode() returns the data type), which is why the mode is computed from table(). Add lines(density(x)) after hist() if you want a smooth density curve on top of the histogram.

Python (pandas + matplotlib)

Install the libraries once with pip install pandas matplotlib. To read a column from a file, use x = pd.read_csv("data.csv")["score"].

import pandas as pd

x = pd.Series([10, 25, 13, 42, 55, 25, 13, 8, 9, 11, 15, 18, 22, 26, 30,
               35, 40, 45, 50, 60, 70, 80, 90, 100, 110, 120, 5, 15, 25, 35, 45])

print("n        :", x.count())
print("sum      :", x.sum())
print("min / max:", x.min(), "/", x.max())
print("range    :", x.max() - x.min())
print("mean     :", x.mean())
print("median   :", x.median())
print("mode(s)  :", list(x.mode()))   # all most-frequent values
print("variance :", x.var())          # sample variance (ddof=1 is the pandas default)
print("std dev  :", x.std())          # sample standard deviation

# Frequency table with relative frequencies (%)
freq = x.value_counts().sort_index()
table = pd.DataFrame({"frequency": freq,
                      "rel_freq_%": (100 * freq / len(x)).round(2)})
print(table)

print(x.describe())   # count, mean, std, min, quartiles, max in one call

Plots:

import matplotlib.pyplot as plt

fig, axes = plt.subplots(1, 3, figsize=(12, 3.5))
axes[0].hist(x, density=True, edgecolor="black")
axes[0].set_title("Density histogram")
axes[1].boxplot(x, showmeans=True)
axes[1].set_title("Box plot")
axes[2].plot(x, [0] * len(x), "o", alpha=0.6)
axes[2].set_title("Dot plot")
axes[2].set_yticks([])
plt.tight_layout()
plt.show()

Pandas divides by n − 1 by default, but NumPy does not: np.var(x) returns the population variance unless you pass ddof=1. Also note that x.mode() returns every value when all values are unique, whereas this calculator reports "No distinct mode" in that case.

SPSS

  1. Enter your data in a single numeric column (e.g., Score).
  2. Go to Analyze → Descriptive Statistics → Frequencies… and move Score to Variable(s).
  3. Click Statistics… and tick Mean, Median, Mode, Sum, Std. deviation, Variance, Range, Minimum, Maximum, then Continue.
  4. Click Charts…, choose Histograms, then Continue. Keep Display frequency tables checked, then click OK.
  5. For a box plot, go to Analyze → Descriptive Statistics → Explore…, move Score to Dependent List, and under Plots… tick Boxplots. Other charts, including a dot plot, are available under Graphs → Chart Builder…

Or use syntax:

FREQUENCIES VARIABLES=Score
  /STATISTICS=MEAN MEDIAN MODE SUM STDDEV VARIANCE RANGE MINIMUM MAXIMUM
  /HISTOGRAM
  /ORDER=ANALYSIS.

EXAMINE VARIABLES=Score
  /PLOT=BOXPLOT HISTOGRAM
  /STATISTICS=DESCRIPTIVES.

If the data has several modes, SPSS shows only the smallest one and adds a footnote.

JMP

  1. Enter your data in a single column.
  2. Go to Analyze → Distribution, move the column to Y, Columns, and click OK. JMP draws a histogram and an outlier box plot and shows the mean, standard deviation and N.
  3. To add more statistics, click the red triangle next to the column name and choose Display Options → Customize Summary Statistics, then tick Variance, Sum, Median, Mode, Range, Minimum, Maximum.
  4. For a frequency table, set the column's modeling type to Ordinal or Nominal; Distribution then adds a Frequencies table with counts and relative frequencies.
  5. For a dot plot, use Graph → Graph Builder, drag the column to the X zone, and choose the Points element.

JASP

  1. Open your data file (CSV, Excel or SPSS .sav).
  2. Go to Descriptives and move your variable to Variables.
  3. Open Statistics and tick Mean, Median, Mode, Sum, Std. deviation, Variance, Range, Minimum, Maximum.
  4. Under Basic plots, tick Distribution plots and Boxplots (and Dot plots in recent versions).
  5. For a frequency table, tick Frequency tables (nominal and ordinal variables) and change the column type to Nominal or Ordinal.

jamovi

  1. Open your data file (CSV, Excel, SPSS or .omv).
  2. Go to Analyses → Exploration → Descriptives and move your variable to Variables.
  3. Under Statistics, tick Mean, Median, Mode, Sum, Std. deviation, Variance, Range, Minimum, Maximum.
  4. Under Plots, tick Histogram, Density and Box plot (add Dot to overlay the data points).
  5. Tick Frequency tables in the main options to get counts and percentages.
Why results can differ slightly: Programs use different methods for quartiles (which changes the box plot), for the mode when there are several, and for histogram bins. The grouped frequency table in this calculator always uses 7 equal-width intervals when there are more than 25 distinct values. For the long example in the input box (31 values), the calculator gives n = 31, sum = 1247, mean ≈ 40.2258, median = 30, mode = 25, sample variance ≈ 1005.514 and sample standard deviation ≈ 31.7098, and so should the code above.

Related Statistical Calculators