Skip to contents

Customer and revenue distribution by segments.

Usage

rfm_plot_revenue_dist(
  x,
  flip = FALSE,
  colors = c("#3b5bdb", "#91a7ff"),
  legend_labels = c("Revenue", "Customers"),
  plot_title = "Revenue & Customer Distribution",
  xaxis_label = NULL,
  yaxis_label = NULL,
  axis_label_size = 8,
  axis_label_angle = 315,
  bar_labels = FALSE,
  bar_label_size = 2,
  interactive = FALSE,
  animate = FALSE,
  print_plot = TRUE
)

Arguments

x

An object of class rfm_segment_summary.

flip

logical; if TRUE, creates horizontal bar plot.

colors

Bar colors.

legend_labels

Legend labels.

plot_title

Title of the plot.

xaxis_label

X axis label.

yaxis_label

Y axis label.

axis_label_size

Font size of X axis tick labels.

axis_label_angle

Angle of X axis tick labels.

bar_labels

If TRUE, add labels to the bars. Defaults to FALSE.

bar_label_size

Size of bar labels.

interactive

If TRUE, uses plotly as the visualization engine. If FALSE, uses ggplot2.

animate

If TRUE, animates the bars. Defaults to FALSE.

print_plot

logical; if TRUE, prints the plot else returns a plot object.

Examples

# analysis date
analysis_date <- as.Date('2006-12-31')

# generate rfm score
rfm_result <- rfm_table_order(rfm_data_orders, customer_id, order_date,
revenue, analysis_date)

# segment names
segment_names <- c("Champions", "Potential Loyalist", "Loyal Customers",
                   "Promising", "New Customers", "Can't Lose Them",
                   "At Risk", "Need Attention", "About To Sleep", "Lost")

# segment intervals
recency_lower <-   c(5, 3, 2, 3, 4, 1, 1, 1, 2, 1)
recency_upper <-   c(5, 5, 4, 4, 5, 2, 2, 3, 3, 1)
frequency_lower <- c(5, 3, 2, 1, 1, 3, 2, 3, 1, 1)
frequency_upper <- c(5, 5, 4, 3, 3, 4, 5, 5, 3, 5)
monetary_lower <-  c(5, 2, 2, 3, 1, 4, 4, 3, 1, 1)
monetary_upper <-  c(5, 5, 4, 5, 5, 5, 5, 5, 4, 5)

# generate segments
segments <- rfm_segment(rfm_result, segment_names, recency_lower,
recency_upper, frequency_lower, frequency_upper, monetary_lower,
monetary_upper)

# segment summary
segment_overview <- rfm_segment_summary(segments)

# revenue distribution
# ggplot2
rfm_plot_revenue_dist(segment_overview)


# flip
rfm_plot_revenue_dist(segment_overview, flip = TRUE)


# plotly
rfm_plot_revenue_dist(segment_overview, interactive = TRUE)