Каждый раз, когда подводятся финансовые итоги прошедшего года и готовится соответствующая презентация, люди ломают голову, как бы уместить основные цифры на одной диаграмме. Какова бы ни была сфера деятельности организации, подведение итогов, как правило, начинается с анализа основных финансовых показателей, отдельно по каждому из бизнес-направлений:
Специалисты, знакомые с R, могут использовать ggplot2 для программного построения нужной диаграммы, например, такой как здесь. Для примера взяты цифры за 2012 год из годового отчета компании Unilever. Плановые показатели не относятся к публичным данным, поэтому пришлось их выдумать из головы, установив, для определенности, на уровне «прошлый год + 5%».
Исходные цифры находятся в Excel и выглядят так (данные в миллионах евро):
Построенная в RStudio диаграмма выглядит следующим образом:
Проверьте диаграмму на интуитивность, и не глядя на цифры, предположите, какому показателю какой элемент диаграммы соответствует, а объяснения будут далее.
Идея в том, чтобы основной параметр — оборот (Turnover) — показывался в виде залитых цветом столбцов, показатель прошлого года (LastYear) — как контур, находящийся визуально позади, плановые показатели (Forecast) в виде «планок», а прибыльность (точнее, противоположная величина — расходы) — небольшой отметкой.
Для чтения данных из Excel используется пакет XLConnect. Из файла Excel, из указанного листа, в R загружается именованная таблица.
Цвета для диаграммы взяты из таблицы корпоративных цветов Unilever.
Итак, код
Исходные данные: Univeler, годовой отчет и финансовая отчетность 2012, страница 92.
- оборот в завершившемся году (фактические цифры);
- установленные ранее планы на завершившийся год (для анализа выполнения);
- оборот годом ранее (для понимания динамики);
- прибыльность.
Специалисты, знакомые с R, могут использовать ggplot2 для программного построения нужной диаграммы, например, такой как здесь. Для примера взяты цифры за 2012 год из годового отчета компании Unilever. Плановые показатели не относятся к публичным данным, поэтому пришлось их выдумать из головы, установив, для определенности, на уровне «прошлый год + 5%».
Исходные цифры находятся в Excel и выглядят так (данные в миллионах евро):
Построенная в RStudio диаграмма выглядит следующим образом:
Проверьте диаграмму на интуитивность, и не глядя на цифры, предположите, какому показателю какой элемент диаграммы соответствует, а объяснения будут далее.
Идея в том, чтобы основной параметр — оборот (Turnover) — показывался в виде залитых цветом столбцов, показатель прошлого года (LastYear) — как контур, находящийся визуально позади, плановые показатели (Forecast) в виде «планок», а прибыльность (точнее, противоположная величина — расходы) — небольшой отметкой.
Для чтения данных из Excel используется пакет XLConnect. Из файла Excel, из указанного листа, в R загружается именованная таблица.
Цвета для диаграммы взяты из таблицы корпоративных цветов Unilever.
Итак, код
require(XLConnect)
require(data.table)
require(ggplot2)
require(scales)
indata <- readTable(loadWorkbook("Unilever.xlsx"),
sheet = "FinResults",
table = "Unilever2012",
useCachedValues = TRUE)
finreport <- data.table(indata)[, list(
Segment = reorder(Segment, -Turnover),
Cost = (Turnover - Profit),
Forecast, Turnover, LastYear
)]
turnover_format = function(...){
function(x) paste("€B ", format(x/1000, ..., nsmall = 1L, scientific = FALSE, trim = TRUE))
}
chart <- ggplot(finreport, aes(x = Segment)) +
geom_bar(aes(y = LastYear), stat = "identity", color = "#004976", fill = "white", width = 0.9) +
geom_bar(aes(y = Turnover), stat = "identity", color = "white", fill = "#0085CA", width = 0.6) +
geom_crossbar(aes(ymin = Forecast, ymax = Forecast, y = Forecast), color = "#ED8800", width = 0.4, size = 0.7) +
geom_point(aes(y = Cost), shape = 25, color = "#cedc00", fill = "white") +
scale_y_continuous(breaks = pretty_breaks(20), labels = turnover_format()) +
theme_bw() +
theme ( panel.border = element_blank()
, axis.line = element_line()
, axis.title.x = element_blank()
, axis.title.y = element_blank()
, axis.text = element_text( size = 13, color = "#3C1053")
)
print(chart)
Исходные данные: Univeler, годовой отчет и финансовая отчетность 2012, страница 92.