Диаграмма-воронка – это инструмент визуализации, используемый для представления постепенного сокращения данных по мере их прохождения через различные этапы. Его часто используют для описания процесса продаж или маркетинга, где данные начинаются с большего числа и сужаются на каждом этапе до достижения конечного результата. Вот несколько методов создания диаграмм-воронок с примерами кода на разных языках программирования:
-
Python (с использованием Matplotlib и Plotly):
import matplotlib.pyplot as plt import plotly.graph_objects as go # Data for funnel chart labels = ['Stage 1', 'Stage 2', 'Stage 3', 'Stage 4'] values = [1000, 800, 500, 200] # Matplotlib funnel chart plt.figure(figsize=(6, 4)) plt.gca().invert_yaxis() plt.barh(range(len(labels)), values, color='skyblue') plt.yticks(range(len(labels)), labels) plt.xlabel('Number of Leads') plt.title('Funnel Chart - Matplotlib') plt.show() # Plotly funnel chart fig = go.Figure(go.Funnel( y=labels, x=values, textinfo="value+percent previous")) fig.update_layout(title='Funnel Chart - Plotly') fig.show() -
R (с использованием ggplot2):
library(ggplot2) # Data for funnel chart labels <- c('Stage 1', 'Stage 2', 'Stage 3', 'Stage 4') values <- c(1000, 800, 500, 200) # Create funnel chart df <- data.frame(labels, values) df <- df[order(df$values, decreasing = TRUE), ] df$ymax <- c(tail(cumsum(df$values), -1), 0) df$ymin <- c(0, head(cumsum(df$values), -1)) # Plot funnel chart ggplot(df, aes(fill = labels, ymax = ymax, ymin = ymin, xmax = 4, xmin = 3)) + geom_rect() + coord_flip() + theme_void() + labs(x = "Number of Leads", y = NULL, title = "Funnel Chart - ggplot2") -
JavaScript (с использованием Chart.js):
<!DOCTYPE html> <html> <head> <title>Funnel Chart - Chart.js</title> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <style> canvas { max-width: 500px; margin: 0 auto; } </style> </head> <body> <canvas id="funnelChart"></canvas> <script> // Data for funnel chart const labels = ['Stage 1', 'Stage 2', 'Stage 3', 'Stage 4']; const values = [1000, 800, 500, 200]; // Create funnel chart const ctx = document.getElementById('funnelChart').getContext('2d'); new Chart(ctx, { type: 'horizontalFunnel', data: { labels: labels, datasets: [{ data: values, backgroundColor: 'skyblue' }] }, options: { aspectRatio: 1, responsive: true, title: { display: true, text: 'Funnel Chart - Chart.js' }, legend: { display: false } } }); </script> </body> </html>