Цветовая палитра и терминология живописи в письмах Ван Гога

Author

Ксения Войтова

Published

December 20, 2025

“Я твердо верю в искусство, твердо верю в то, что оно, как мощное течение, неизменно приносит человека в гавань, хотя сам он тоже должен делать для этого все возможное, во всяком случае, человек, найдя свое призвание, обретает, по-моему, такое великое благо, что я не могу числить себя среди несчастных.”

— Винсент Ван Гог (Ван Гог 2012)

Введение

Винсент Ван Гог (1853-1890) — один из самых известных художников постимпрессионизма, чьи письма представляют уникальный источник для изучения творческого мышления (Naifeh and Smith 2011). В отличие от многих художников своего времени, Ван Гог вел обширную переписку, преимущественно с братом Тео, в которой детально описывал свой творческий процесс, эмоциональное состояние и художественные идеи (Van Gogh 2009).

Цель исследования

Данная работа преследует две основные цели:

  1. Количественный анализ цветовой лексики: выявление частотности упоминания цветов в письмах художника к брату в разные периоды творчества для сравнительного анализа с колористическими особенностями его живописных работ этих периодов.

  2. Анализ терминологии живописи: выявление основных терминов живописи для определения наиболее значимых для художника аспектов творческого процесса и живописной техники..

Данные

Источник: корпус писем Винсента Ван Гога, собранный Prasad Salimath путём парсинга официального сайта Van Gogh Letters. Датасет включает 902 письма преимущественно к брату Тео.

Методология

Исследование использует следующие методы:

  • Регулярные выражения для извлечения цветовой лексики и терминов живописи
  • Токенизация для разбиения текста на отдельные слова
  • Частотный анализ для выявления ключевых терминов
  • Визуализация для представления результатов

Загрузка библиотек и данных

Code
library(tidyverse)
library(readr)
library(tidytext)      
library(textdata)      
library(wordcloud)     
library(RColorBrewer)  
library(knitr)        
library(gt)
library(dplyr)
library(ggplot2)
library(patchwork)
library(scales)  

theme_set(theme_minimal(base_size = 12))

Импорт данных

Code
# псточник: GitHub репозиторий Prasad Salimath
# https://github.com/PrasadSalimath/Text-Analytics-on-Van-Gogh-Letters
# данные извлечены с Van Gogh Letters (https://vangoghletters.org)

url <- "https://raw.githubusercontent.com/PrasadSalimath/Text-Analytics-on-Van-Gogh-Letters/main/van_gogh_letters_data.csv"

vangogh_letters <- read_csv(url, show_col_types = FALSE)
New names:
• `` -> `...1`
Code
head(vangogh_letters, 3)

Анализ с регулярными выражениями

1. Извлечение цветовой лексики

Code
# паттерн для цветов
color_pattern <- "\\b(yellow|blue|red|green|violet|purple|orange|grey|gray|white|black|brown|pink|gold|golden|azure|mauve|vermilion|crimson|indigo|scarlet|emerald|cobalt)\\b"

color_letters <- vangogh_letters |>
  filter(str_detect(letter_text, regex(color_pattern, ignore_case = TRUE))) |>
  mutate(colors_found = str_extract_all(letter_text, regex(color_pattern, ignore_case = TRUE)))

cat("\nПисем с упоминанием цветов:", nrow(color_letters), "\n")

Писем с упоминанием цветов: 556 

2. Извлечение терминов живописи

Code
# паттерн для терминов, связанных с живописью и творчеством
art_pattern <- "\\b(paint|painting|painted|draw|drawing|drew|sketch|sketching|canvas|brush|brushes|colour|color|colors|colours|palette|studio|portrait|landscape|landscapes|work|works|picture|pictures|artist)\\b"

art_letters <- vangogh_letters |>
  filter(str_detect(letter_text, regex(art_pattern, ignore_case = TRUE))) |>
  mutate(art_terms = str_extract_all(letter_text, regex(art_pattern, ignore_case = TRUE)))

cat("\nПисем с упоминанием творчества:", nrow(art_letters), "\n")

Писем с упоминанием творчества: 822 

Частотный анализ цветов

Code
color_freq <- color_letters |>
  unnest(colors_found) |>
  mutate(color = str_to_lower(colors_found)) |>
  count(color, sort = TRUE)

print(head(color_freq, 15))
# A tibble: 15 × 2
   color      n
   <chr>  <int>
 1 white    542
 2 blue     462
 3 black    459
 4 green    448
 5 yellow   432
 6 mauve    364
 7 red      342
 8 grey     303
 9 pink     155
10 orange   149
11 violet   102
12 brown     89
13 gold      71
14 purple    52
15 cobalt    27

Таблица частот цветов

Code
color_freq |>
  slice_head(n = 15) |>
  mutate(percentage = round(n / sum(n) * 100, 1)) |>
  gt() |>
  tab_header(
    title = "Топ-15 цветов в письмах Ван Гога",
    subtitle = "Частотный анализ цветовой лексики"
  ) |>
  cols_label(
    color = "Цвет",
    n = "Частота",
    percentage = "Процент (%)"
  ) |>
  fmt_number(
    columns = n,
    decimals = 0
  ) |>
  tab_source_note(
    source_note = "Источник: Van Gogh Letters corpus"
  ) |>
  data_color(
  columns = n,
  fn = scales::col_numeric(   
    palette = "Blues",
    domain = NULL
    )
  )
Топ-15 цветов в письмах Ван Гога
Частотный анализ цветовой лексики
Цвет Частота Процент (%)
white 542 13.6
blue 462 11.6
black 459 11.5
green 448 11.2
yellow 432 10.8
mauve 364 9.1
red 342 8.6
grey 303 7.6
pink 155 3.9
orange 149 3.7
violet 102 2.6
brown 89 2.2
gold 71 1.8
purple 52 1.3
cobalt 27 0.7
Источник: Van Gogh Letters corpus

Частотный анализ терминов живописи

Code
art_freq <- art_letters |>
  unnest(art_terms) |>
  mutate(term = str_to_lower(art_terms)) |>
  count(term, sort = TRUE)

print(head(art_freq, 15))
# A tibble: 15 × 2
   term          n
   <chr>     <int>
 1 work       2403
 2 painting   1276
 3 drawing     790
 4 paint       525
 5 colour      495
 6 studio      481
 7 painted     421
 8 sketch      360
 9 canvas      335
10 portrait    315
11 colours     311
12 draw        245
13 landscape   190
14 works       189
15 artist      178

Таблица терминов живописи

Code
art_freq |>
  slice_head(n = 12) |>
  mutate(percentage = round(n / sum(n) * 100, 1)) |>
  gt() |>
  tab_header(
    title = "Топ-12 терминов живописи в письмах Ван Гога",
    subtitle = "Частотный анализ тематической лексики"
  ) |>
  cols_label(
    term = "Термин",
    n = "Частота",
    percentage = "Процент (%)"
  ) |>
  fmt_number(
    columns = n,
    decimals = 0
  ) |>
  tab_source_note(
    source_note = "Источник: Van Gogh Letters corpus"
  )
Топ-12 терминов живописи в письмах Ван Гога
Частотный анализ тематической лексики
Термин Частота Процент (%)
work 2,403 30.2
painting 1,276 16.0
drawing 790 9.9
paint 525 6.6
colour 495 6.2
studio 481 6.0
painted 421 5.3
sketch 360 4.5
canvas 335 4.2
portrait 315 4.0
colours 311 3.9
draw 245 3.1
Источник: Van Gogh Letters corpus

Из таблицы видим, что термины “work”, “painting”, “drawing” и “paint” доминируют в переписке, что подтверждает центральность творческого процесса для художника.

Визуализация 1: Частота цветов

Code
color_palette <- c(
  "yellow" = "#FFD700", "blue" = "#0000FF", "red" = "#FF0000",
  "green" = "#008000", "white" = "#F5F5F5", "black" = "#000000",
  "grey" = "#808080", "gray" = "#696969", "brown" = "#8B4513",
  "purple" = "#800080", "violet" = "#7F00FF", "orange" = "#FFA500",
  "pink" = "#FFC0CB", "gold" = "#FFD700", "golden" = "#DAA520", "mauve" = "#ba8888"
)

color_freq |>
  slice_head(n = 12) |>
  mutate(fill_color = ifelse(color %in% names(color_palette), 
                              color_palette[color], 
                              "steelblue")) |>
  ggplot(aes(x = reorder(color, n), y = n, fill = color)) +
  geom_col(show.legend = FALSE) +
  scale_fill_manual(values = color_palette) +
  coord_flip() +
  labs(
    title = "Цветовая палитра в письмах Винсента Ван Гога",
    subtitle = "Топ-12 наиболее упоминаемых цветов",
    x = "Цвет",
    y = "Частота упоминаний",
    caption = "Данные: Van Gogh Letters corpus"
  ) +
  theme_minimal(base_size = 14) +
  theme(
    plot.title = element_text(face = "bold", size = 16),
    axis.text.y = element_text(size = 12, face = "bold")
  )

Warning

Важное замечание: Эта таблица показывает общие частоты за весь период переписки. Пока нельзя сказать, какие цвета доминировали в конкретные годы. Для этого см. график временной динамики ниже.

Code
# извлекаем год из даты
color_letters_years <- color_letters |>
  mutate(year = as.numeric(str_extract(date, "\\d{4}"))) |>
  filter(!is.na(year))

# пмсьма по годам
year_counts <- color_letters_years |>
  count(year) |>
  arrange(year)

print(year_counts)
# A tibble: 18 × 2
    year     n
   <dbl> <int>
 1  1873     5
 2  1874     4
 3  1875    12
 4  1876    28
 5  1877    30
 6  1878    10
 7  1879     3
 8  1880     4
 9  1881    21
10  1882    74
11  1883    77
12  1884    28
13  1885    35
14  1886     7
15  1887     1
16  1888   115
17  1889    71
18  1890    31

Динамика цветовой палитры по годам

Code
# периоды творчества
color_by_period <- color_letters_years |>
  unnest(colors_found) |>
  mutate(
    color = str_to_lower(colors_found),
    period = case_when(
      year <= 1885 ~ "1873-1885: Нидерланды (ранний период)",
      year <= 1887 ~ "1886-1887: Париж",
      year <= 1889 ~ "1888-1889: Арль",
      year >= 1890 ~ "1890: Овер-сюр-Уаз",
      TRUE ~ "Другое"
    )
  ) |>
  count(period, color, sort = TRUE)

top_colors_period <- color_by_period |>
  group_by(period) |>
  slice_max(n, n = 5) |>
  ungroup()

print(top_colors_period)
# A tibble: 20 × 3
   period                                color      n
   <chr>                                 <chr>  <int>
 1 1873-1885: Нидерланды (ранний период) black    348
 2 1873-1885: Нидерланды (ранний период) mauve    312
 3 1873-1885: Нидерланды (ранний период) white    298
 4 1873-1885: Нидерланды (ранний период) grey     214
 5 1873-1885: Нидерланды (ранний период) green    171
 6 1886-1887: Париж                      blue      11
 7 1886-1887: Париж                      green     10
 8 1886-1887: Париж                      yellow    10
 9 1886-1887: Париж                      red        7
10 1886-1887: Париж                      white      7
11 1888-1889: Арль                       blue     270
12 1888-1889: Арль                       yellow   268
13 1888-1889: Арль                       green    236
14 1888-1889: Арль                       white    204
15 1888-1889: Арль                       red      153
16 1890: Овер-сюр-Уаз                    white     33
17 1890: Овер-сюр-Уаз                    blue      32
18 1890: Овер-сюр-Уаз                    green     31
19 1890: Овер-сюр-Уаз                    yellow    24
20 1890: Овер-сюр-Уаз                    pink      22

Визуализация: Цветовая палитра по периодам

Code
main_colors <- c("yellow", "blue", "red", "green", "white", "black", "mauve")

color_timeline <- color_letters_years |>
  unnest(colors_found) |>
  mutate(
    color = str_to_lower(colors_found),
    year = as.numeric(year)
  ) |>
  filter(color %in% main_colors) |>
  count(year, color) |>
  group_by(year) |>
  mutate(
    total = sum(n),
    percentage = (n / total) * 100,
    percentage = percentage / sum(percentage) * 100 
  ) |>
  ungroup() |>
  filter(total >= 10)

palette_fill <- c(
  "yellow" = "#FFD700",
  "blue"   = "#1E90FF",
  "red"    = "#DC143C",
  "green"  = "#228B22",
  "white"  = "#e8e8e8",
  "black"  = "#000000",
  "mauve"  = "#BA8888"
)

legend_labels <- c(
  "yellow" = "Желтый",
  "blue"   = "Синий",
  "red"    = "Красный",
  "green"  = "Зеленый",
  "white"  = "Белый",
  "black"  = "Черный",
  "mauve"  = "Лиловый"
)

common_theme <- theme_minimal(base_size = 10) +
  theme(
    plot.title = element_text(face = "bold", size = 12),
    legend.position = "right",
    legend.text = element_text(size = 8),
    panel.grid.minor = element_blank(),
    axis.text.x = element_text(angle = 45, hjust = 1, size = 8),
    axis.text.y = element_text(size = 8),
    axis.title = element_text(size = 9)
  )

# график 1: абсолютные значения
p_counts <- ggplot(color_timeline, aes(x = year, y = n, fill = color)) +
  geom_col(width = 0.8, position = "stack", alpha = 0.9) +
  scale_fill_manual(values = palette_fill, labels = legend_labels, name = "Цвет") +
  labs(
    title = "Абсолютные значения",
    x = "Год",
    y = "Число упоминаний"
  ) +
  common_theme

# график 2: проценты
p_pct <- ggplot(color_timeline, aes(x = year, y = percentage, fill = color)) +
  geom_col(width = 0.8, position = "stack", alpha = 0.9) +
  scale_y_continuous(
    labels = function(x) paste0(round(x), "%")
  ) +
  scale_fill_manual(values = palette_fill, labels = legend_labels, name = "Цвет") +
  labs(
    title = "Процентное соотношение",
    x = "Год",
    y = "Доля упоминаний (%)"
  ) +
  common_theme

p_counts + p_pct + 
  plot_layout(ncol = 2, guides = "collect") +
  plot_annotation(
    title = "Эволюция цветовой палитры в письмах Ван Гога",
    subtitle = "Сравнение абсолютных значений и процентного соотношения упоминаний цветов по годам",
    theme = theme(
      plot.title = element_text(face = "bold", size = 14),
      plot.subtitle = element_text(size = 11)
    )
  )

Отражение данных в творчестве Ван Гога и интерпретация временной динамики

1880-1885: Нидерланды (ранний период)

“Но, как ты понимаешь, я и в акварели и в масле ограничился лишь самыми простыми красками: красной, желтой и коричневой охрами, кобальтом и прусской синей, неаполитанской желтой, черной и белой, сиенской землей и, в дополнение к ним, чуточкой кармина, сепии, киновари, ультрамарина и гуммигута в маленьких тюбиках.”

—Винсент Ван Гог, Письма к брату Тео (Ван Гог 2012)

Из графика видно: В ранний период (1880-1885) в письмах доминируют упоминания черного, зеленого и лиливого цветов. Желтый находится на минимальном уровне, что резко контрастирует с поздним арльским периодом.

Ранний нидерландский период творчества Ван Гога (1880-1885) характеризуется доминированием темной палитры, что отражает сильное влияние барбизонской школы реализма и голландских мастеров XVII века, особенно Рембрандта. В работах этого времени преобладают темные, охристые и зеленоватые оттенки, призванные передать суровую реальность крестьянского быта. Художник сознательно избегал ярких красок, стремясь к правдивому изображению труда и повседневной жизни простых людей. Наиболее известная работа периода — «Едоки картофеля» (1885) — демонстрирует характерную цветовую гамму: коричневые и черные тона, землистые оттенки, приглушенный свет керосиновой лампы. Эта «темная манера» была типична для голландской живописной традиции и отражала социальную направленность раннего творчества Ван Гога, его интерес к изображению жизни шахтеров, ткачей и крестьян.

Едоки картофеля (The Potato Eaters)
1885, Амстердам, Музей Ван Гога

Крестьянка (Peasant Woman)
1885, Амстердам, Музей Ван Гога


1886-1887: Париж

Переходный момент на графике: Начиная с 1886 года наблюдается резкое снижение упоминаний черного и одновременный рост синего, желтого, зеленого и белого — это количественное отражение перехода от темной голландской палитры к светлой импрессионистической.

Парижский период (1886-1887) стал переломным в колористическом мышлении Ван Гога. Напряженная, можно сказать, исследовательская работа в области цвета началась у художника еще в Голландии, когда у него зародилась мысль о самостоятельном выразительном значении цвета. В одном из писем к брату он размышлял: «В красках заложены скрытые созвучия и контрасты, которые взаимодействуют сами по себе и которые иначе как для выражения настроения нельзя использовать» (Ван Гог 2012).

В Париже, в краткий период увлечения импрессионизмом, а затем и пуантилизмом, Ван Гог на время оставил эту идею экспрессивной самостоятельности цвета. Его увлекли представления импрессионистов о свете и цвете, теория дополнительных цветов Жоржа Сера и Поля Синьяка, принцип «ореолов» и техника дивизионизма. Знакомство с Камилем Писсарро оказало особое влияние: Ван Гог подметил, что «следует смело преувеличивать эффекты, создаваемые контрастом или гармонией цветов».

Палитра парижского периода характеризуется резким осветлением: вместо землистых и темных тонов голландского периода появляются яркие синие, зеленые, красные и желтые оттенки. Художник экспериментирует с точечной техникой пуантилизма, изучает оптическое смешение цветов и принципы цветового контраста. Однако уже к концу парижского пребывания Ван Гог начинает отходить от импрессионистической объективности, стремясь к более личному, эмоционально насыщенному использованию цвета, что полностью раскроется в арльский период.

Автопортрет в серой фетровой шляпе (Self-Portrait with Grey Felt Hat)
1887, Амстердам, Музей Ван Гога

Вид на Париж
из квартиры Тео на улице Лепик
(View of Paris from Vincent’s Room in the Rue Lepic)
1887, Амстердам, Музей Ван Гога


1888-1889: Арль (желтый период)

Пик на графике: Количественный анализ выявляет максимальный всплеск упоминаний желтого цвета в 1888-1889 годах (до 22% от всех цветовых упоминаний, что на 50% выше, чем в предыдущие периоды).

Художник писал брату Тео: “I’m painting with the gusto of a Marseillais eating bouillabaisse, which won’t surprise you when it’s a question of painting large Sunflowers” (август 1888). О Желтом доме восторженно сообщал: “It’s tremendous, these yellow houses in the sunlight and then the incomparable freshness of the blue” (сентябрь 1888).

Серия «Подсолнухов» — прямое воплощение той одержимости желтым, которая количественно отражена в переписке. Доминирование золотистых, охристых и ярко-желтых тонов на полотнах соответствует пику упоминаний этого цвета в текстовых данных.

Подсолнухи (Sunflowers)
1888, Лондон, Национальная галерея

Вид Арля с ирисами
(View of Arles with Irises)
1889, Амстердам, Музей Ван Гога


1890: Овер-сюр-Уаз

Видим из графика: В последний год жизни (1890) наблюдается снижение желтого относительно арльского пика. Одновременно увеличивается частота упоминаний зеленого — цветовая гамма становится более холодной и драматичной.

Работы этого периода: «Пшеничное поле с воронами» демонстрирует доминирование синего в драматичном небе и сочетание желтого поля с темными тонами — точное отражение цветовой лексики последних писем, где синий выходит на первый план, сохраняя контраст с желтым.

Пшеничное поле с воронами (Wheatfield with Crows)
1890, Амстердам, Музей Ван Гога

Церковь в Овере (The Church at Auvers)
1890, Париж, Музей Орсе

Визуализация 2: График терминов живописи

Code
art_freq |>
  slice_head(n = 15) |>
  ggplot(aes(x = reorder(term, n), y = n, fill = n)) +
  geom_col(show.legend = FALSE) +
  coord_flip() +
  scale_fill_gradient(low = "#9ECAE1", high = "#08519C") +
  labs(
    title = "Лексика творчества в письмах Винсента Ван Гога",
    subtitle = "Топ-15 наиболее употребляемых терминов живописи",
    x = "Термин",
    y = "Частота упоминаний",
    caption = "Данные: Van Gogh Letters corpus"
  ) +
  theme_minimal(base_size = 14) +
  theme(
    plot.title = element_text(face = "bold", size = 16),
    axis.text.y = element_text(size = 12)
  )

График демонстрирует явное преобладание общих терминов “work” и “painting” над более специфическими (“portrait”, “landscape”), что отражает широту обсуждаемых тем в переписке.

Токенизация и обработка текста

Токенизация корпуса

Code
# токенизация всех писем
vangogh_tokens <- vangogh_letters |>
  unnest_tokens(word, letter_text) |>
  anti_join(stop_words, by = "word")

Самые частые слова

Code
top_words <- vangogh_tokens |>
  count(word, sort = TRUE) |>
  slice_head(n = 20)

cat("\nТоп-20 слов в корпусе:\n")

Топ-20 слов в корпусе:
Code
print(top_words)
# A tibble: 20 × 2
   word         n
   <chr>    <int>
 1 it’s      3437
 2 i’m       3157
 3 don’t     2404
 4 time      2091
 5 i’ve      2054
 6 i’ll      1681
 7 1v        1491
 8 letter    1351
 9 people    1318
10 painting  1224
11 that’s    1200
12 life      1095
13 there’s   1093
14 hope      1090
15 i’d       1075
16 dear      1061
17 you’ll    1025
18 write     1013
19 day        969
20 theo       959

Визуализация 3: Облако слов

Code
set.seed(42)

# фильтруем, чтобы избавиться от слов it’s, i’m, don’t
wordcloud_data <- vangogh_tokens |>
  filter(str_detect(word, "^[a-z]+$")) |>     
  filter(str_length(word) >= 4) |>              
  filter(!str_detect(word, "^[0-9]")) |>         
  count(word, sort = TRUE) |>
  slice_head(n = 80)

wordcloud(
  words = wordcloud_data$word,
  freq = wordcloud_data$n,
  min.freq = 10,
  random.order = FALSE,
  rot.per = 0.25,
  colors = c("#08519C", "#3182BD", "#6BAED6", "#FD8D3C", "#E6550D", "#A63603"),
  scale = c(5, 0.6)
)

title("Облако наиболее частотных слов в письмах Ван Гога", 
      cex.main = 1.8, font.main = 2, col.main = "#8B4513")

Выводы

1. Цветовая палитра в письмах

Анализ цветовой лексики выявил 556 писем с упоминанием цветов (61.6% от общего числа). Доминирующие цвета — желтый (432 упоминаний), синий и красный — соответствуют известной палитре художника, особенно арльского периода.

2. Доминирование творческой лексики

Термины, связанные с живописью и художественным процессом, встречаются в 91.1% писем. Наиболее частотные термины — “work” (2403 упоминаний), “painting” и “paint” — составляют ядро творческого словаря художника.

Дальнейшие перспективы исследования

Полученные данные можно использовать для искусствоведческих задач. Например, выявленные паттерны помогают в датировке — если в недатированном письме много желтого, это скорее всего Арль 1888-1889. Интересно было бы сопоставить с биографией: почему именно в Арле случился «взрыв» желтого?

Можно детально сопоставить письма и картины — что именно писал Ван Гог о цвете в дни работы над «Звездной ночью» или «Подсолнухами»? Систематизация всех высказываний о цвете могла бы дать представление о теоретических взглядах художника.

С технической стороны можно было бы добавить тематическое моделирование (LDA) и анализ тональности.

Список литературы

Naifeh, Steven, and Gregory White Smith. 2011. Van Gogh: The Life. New York: Random House.
Van Gogh, Vincent. 2009. The Letters of Vincent van Gogh. Edited by Mark Roskill. New York: Touchstone.
Ван Гог, Винсент. 2012. Письма к Брату Тео. Translated by Полина Мелкова. Москва: АСТ.