Выделите область графика во временном ряду

Я построил свой временной ряд xts следующим образом:

library(xts)
data(sample_matrix)
prices <- as.xts(sample_matrix)[,"Close"]
pw_returns <- diff(log(prices))
plot(pw_returns, main = "", col = "darkblue", lwd=1)

Я хотел бы выделить кластеры волатильности, как это сделано на следующем графике:

Выделите область графика во временном ряду

кто-нибудь знает, как это сделать в R?

дублировать
Roberto Moratore 09.04.2018 09:45

Возможный дубликат ggplot2: выделить область диаграммы

Roberto Moratore 09.04.2018 09:46

@RobertoMoratore; Не уверен, что это изображение ggplot2.

Axeman 09.04.2018 09:54

Также @ toyo10, пожалуйста, предоставьте минимально воспроизводимый пример. У нас нет объекта pw_returns.

Axeman 09.04.2018 09:54

@Axeman, вопрос касался выполнения в R, а не конкретно в базовом сюжете. Я думаю, что ссылка выше все еще применима.

Roberto Moratore 09.04.2018 10:13

Я не публиковал серию возврата, поскольку это не имеет значения. Вопрос был в том, есть ли у меня общая серия результатов. Можно ли это сделать без использования ggplot2 ??

toyo10 09.04.2018 15:20

@ toyo10: Будет любезно предоставить воспроизводимый пример, чтобы облегчить ответ на ваш вопрос. Это легко сделать с данными, поставляемыми с xts: data(sample_matrix, package = "xts").

Joshua Ulrich 09.04.2018 16:56
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
7
1 273
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете сделать это с помощью addPolygon(). Это поможет создать промежуточный объект, содержащий верхнюю и нижнюю границы заштрихованной области.

nr <- nrow(pw_returns)
shade <- cbind(upper = rep(1, nr), lower = rep(-1, nr))
shade <- xts(shade, index(pw_returns))

Теперь мы можем построить и добавить закрашенную область для любого периода, который захотим. Убедитесь, что on = -1 настроен на рисование затененной области за основного графика.

# main plot
plot(pw_returns, main = "", col = "darkblue", lwd = 1)
# add shaded region to February, 2007
addPolygon(shade["2007-02"], col = "lightpink", on = -1)

xts plot with shaded region

Другие вопросы по теме