Quantmod barChart (или chartSeries) параметры форматирования

Я только начал играть с пакетом Quantmod. Однако документация довольно скудная (что, возможно, и понятно, поскольку это OSS).

В настоящее время я использую barChart (), который является хорошей оболочкой для chartSeries () и делает большую часть того, что я хочу, но диаграмма по умолчанию, которую он создает, не совсем то, что я хочу. Чтобы быть конкретным, я хочу настроить диаграммы, создаваемые barChart (), в соответствии с моими потребностями - однако, поскольку я новичок, я не знаю, могут ли мои «настройки» быть предоставлены в качестве параметров для оболочки barChart (), или если мне нужно вызвать chartSeries () напрямую с конкретными аргументами.

Я рвал волосы, пытаясь сделать следующее:

  1. замените ужасный текст {start date} / {end date} в правом верхнем углу диаграммы, созданной barChart (), на текст по моему собственному выбору

  2. укажите форматирование, которое будет использоваться по оси X (например, показать только две последние цифры века, то есть '98, '99, '00, '01 и т. д.)

  3. "Заставить" верхнюю и нижнюю диаграммы печатать их значения Y в левой части диаграммы.

  4. Добавьте дополнительную серию в нижнюю диаграмму

  5. Используйте разные цвета вверх / вниз для нижней диаграммы (по умолчанию используются одни и те же цвета вверх / вниз для верхней и нижней диаграмм)

  6. Постройте только верхнюю диаграмму (без нижней диаграммы)

  7. Укажите ось X, интервалы между линиями сетки по оси Y для верхней диаграммы, для нижней диаграммы

  8. Запишите изображение в альтернативный вывод (например, изображение в формате PNG или документ в формате PDF) вместо графического устройства.

Может ли кто-нибудь помочь с чем-либо (или со всем) из вышеперечисленного?


person Homunculus Reticulli    schedule 05.02.2012    source источник
comment
Я должен сказать, что меня серьезно раздражает, когда анонимные люди, которые обычно мало что внесли в сообщество, критикуют FOSS. Тем не менее, Quantmod - один из лучше документированных пакетов (в пакете и на сайте), что не означает, что его нельзя улучшить.   -  person Joshua Ulrich    schedule 05.02.2012
comment
@JoshuaUlrich: Я понимаю (и разделяю) ваше мнение. Мой вопрос не был задуман как критика (хотя я понимаю, как его можно истолковать как один). Я большой поклонник OSS, и хотя я ничего не внес в R (пока), я вложил и код, и деньги во многие проекты OSS, которые я регулярно использую (на ум приходят PostgreSQL и zeroMQ).   -  person Homunculus Reticulli    schedule 05.02.2012
comment
Вы можете найти несколько диаграмм stackoverflow.com/questions/8815697/ тоже полезен. (Особенно в отношении вашего номера 5, поскольку с помощью двух вызовов chartSeries вы определенно можете контролировать цвета.)   -  person Darren Cook    schedule 06.02.2012
comment
@Homunculus Reticulli, если вы замените ужасное на полезное, вы обнаружите, что ваш вопрос больше не может быть истолкован как критика ...   -  person PatrickT    schedule 29.03.2013


Ответы (2)


  1. Эта функция недоступна (патчи приветствуются).
  2. Эта функция недоступна (патчи приветствуются).
  3. Эта функция недоступна (патчи приветствуются).
  4. См. Скудную документацию для ?addTA, особенно для аргумента on.
  5. Изобразите нижнюю диаграмму как две отдельные серии вверх / вниз, используя два разных цвета или, возможно, chartTheme.
  6. Не уверен, что вы имеете в виду; только не рисуйте нижнюю диаграмму ...
  7. См. Скудную документацию для major.ticks аргумента для chartSeries. Я не думаю, что вы можете изменить интервалы между линиями сетки по оси Y, и интервал по оси x будет одинаковым для верхней и нижней диаграммы.
  8. См. ?png и ?pdf.
person Joshua Ulrich    schedule 05.02.2012

Чтобы изменить или удалить нижнюю диаграмму, проверьте TA аргумент функции chartSeries (в руководстве есть пример); чтобы изменить цвета, отметьте аргумент theme (в мануале есть пример); для записи в файл png или pdf используйте функции png или pdf, как и другие функции построения графиков.

Для точной настройки осей и меток, вероятно, проще вообще обойти chartSeries и построить данные самостоятельно, используя базовую графику, решетку или ggplot2.

person Vincent Zoonekynd    schedule 05.02.2012
comment
Проблема с обходом ChartSeries заключается в том, что некоторых очень полезных функций (например, свечей) нет ни в одном другом пакете (AFAIK). - person Darren Cook; 06.02.2012