Nano Hash - криптовалюты, майнинг, программирование

Как изменить цвета палитры столбца highcharter, который зависит от переменной?

Я начинаю использовать пакет highcharter (версия 0.5.0) в R и не могу понять, как изменить цвет столбцов, которые связаны с переменной в эстетике серии. Заголовок фрейма данных представлен ниже:

> head(Top_G)
# A tibble: 6 × 29
     Rk              Name   Yrs  From    To   ASG     G    PA    AB     R     H   X2B   X3B    HR   RBI
  <int>             <chr> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int>
1   352      Omar Vizquel    24  1989  2012     3  2968 12013 10586  1445  2877   456    77    80   951
2    14 Luis Aparicio HOF    18  1956  1973    13  2599 11230 10230  1335  2677   394    92    83   791
3    75   Dave Concepcion    19  1970  1988     9  2488  9641  8723   993  2326   389    48   101   950
4     1       Bobby Abreu    18  1996  2014     2  2425 10081  8480  1453  2470   574    59   288  1363
5   107  Andres Galarraga    19  1985  2004     5  2257  8916  8096  1195  2333   444    32   399  1425
6    43    Miguel Cabrera    14  2003  2016    11  2096  9001  7853  1321  2519   523    17   446  1553
# ... with 14 more variables: SB <int>, CS <int>, BB <int>, SO <int>, BA <dbl>, OBP <dbl>, SLG <dbl>,
#   OPS <dbl>, Birthdate <date>, Debut <date>, City <chr>, State <chr>, Pos <chr>, Active <chr>

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

highchart() %>%
  hc_add_series(Top_G, "column", hcaes(x = Name, y = G, color = Active), name = "G", showInLegend = FALSE) %>%
  hc_colors(cols) %>%
  #hc_add_series(Top_Yrs, name = "Games") %>%
  hc_add_theme(hc_theme_smpl()) %>%
  hc_title(text = "Games", style = list(fontSize = "22px")) %>%
  hc_subtitle(text = "Chart", style = list(fontSize = "12px")) %>%
  hc_yAxis(title = list(text = "G")) %>%
  hc_xAxis(categories = Top_G$Name) %>%
  hc_xAxis(title = list(text = "Player")) %>%
  hc_credits(enabled = TRUE, # add credits
             text = "Test") %>%
  hc_tooltip(crosshairs = FALSE, backgroundColor = "#DDDEE6",
             shared = FALSE, borderWidth = 2)

Но на графике используются цвета палитры по умолчанию вместо тех, которые определены в переменной cols.

Результат с цветами по умолчанию

Здесь вывод dput(head(Top_G)):

> dput(head(Top_G))
structure(list(Rk = c(352L, 14L, 75L, 1L, 107L, 43L), Name = c("Omar Vizquel", 
"Luis Aparicio HOF", "Dave Concepcion", "Bobby Abreu", "Andres Galarraga", 
"Miguel Cabrera"), Yrs = c(24L, 18L, 19L, 18L, 19L, 14L), From = c(1989L, 
1956L, 1970L, 1996L, 1985L, 2003L), To = c(2012L, 1973L, 1988L, 
2014L, 2004L, 2016L), ASG = c(3L, 13L, 9L, 2L, 5L, 11L), G = c(2968L, 
2599L, 2488L, 2425L, 2257L, 2096L), PA = c(12013L, 11230L, 9641L, 
10081L, 8916L, 9001L), AB = c(10586L, 10230L, 8723L, 8480L, 8096L, 
7853L), R = c(1445L, 1335L, 993L, 1453L, 1195L, 1321L), H = c(2877L, 
2677L, 2326L, 2470L, 2333L, 2519L), X2B = c(456L, 394L, 389L, 
574L, 444L, 523L), X3B = c(77L, 92L, 48L, 59L, 32L, 17L), HR = c(80L, 
83L, 101L, 288L, 399L, 446L), RBI = c(951L, 791L, 950L, 1363L, 
1425L, 1553L), SB = c(404L, 506L, 321L, 400L, 128L, 38L), CS = c(167L, 
136L, 109L, 128L, 81L, 20L), BB = c(1028L, 736L, 736L, 1476L, 
583L, 1011L), SO = c(1087L, 742L, 1186L, 1840L, 2003L, 1516L), 
    BA = c(0.272, 0.262, 0.267, 0.291, 0.288, 0.321), OBP = c(0.336, 
    0.311, 0.322, 0.395, 0.347, 0.399), SLG = c(0.352, 0.343, 
    0.357, 0.475, 0.499, 0.562), OPS = c(0.688, 0.653, 0.679, 
    0.87, 0.846, 0.961), Birthdate = structure(c(-983, -13031, 
    -7868, 1530, -3119, 4855), class = "Date"), Debut = structure(c(7032, 
    -5007, 95, 9740, 5713, 12223), class = "Date"), City = c("Caracas", 
    "Maracaibo", "Ocumare de la Costa", "Maracay", "Caracas", 
    "Maracay"), State = c("Distrito Federal", "Zulia", "Aragua", 
    "Aragua", "Distrito Federal", "Aragua"), Pos = c("POS", "POS", 
    "POS", "POS", "POS", "POS"), Active = c("Retirado", "Retirado", 
    "Retirado", "Retirado", "Retirado", "Activo")), .Names = c("Rk", 
"Name", "Yrs", "From", "To", "ASG", "G", "PA", "AB", "R", "H", 
"X2B", "X3B", "HR", "RBI", "SB", "CS", "BB", "SO", "BA", "OBP", 
"SLG", "OPS", "Birthdate", "Debut", "City", "State", "Pos", "Active"
), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))

Любая подсказка для правильной команды?

Заранее спасибо.

Даниэль.


  • Вы должны включить library вызовы для всех пакетов, которые необходимо загрузить для работы пакета 'highcharter'. Вы также должны включить вывод dput(head(Top_G)). Это PITA, чтобы попытаться создать таблички из вывода на дисплей и обработать ошибки, возникающие из-за отсутствующих пакетов. 24.02.2017
  • Да, ты прав. Сначала я загрузил следующие пакеты: библиотека (highcharter) 24.02.2017
  • Вы, очевидно, использовали больше пакетов, просто глядя на использование операторов канала. Это список импорта из файла DESCRIPTION. Imports: htmlwidgets, magrittr, purrr, rlist, assertthat, zoo, dplyr, tibble (>= 1.1), stringr, broom, xts, quantmod, tidyr, htmltools, jsonlite, igraph, lubridate 24.02.2017
  • 42. Да, извините!. Ошибка при вставке: Загружены следующие пакеты: Sys.setlocale(LC_TIME,English) library(XML) library(tidyverse) library(lubridate) library(highcharter) 24.02.2017
  • @ 42 относительно вывода dput, вот он: 24.02.2017
  • После всего этого я получаю: Error: colors is not an atomic vector without attributes 24.02.2017
  • @42. Понятия не имею об этом Error. В любом случае спасибо за вашу поддержку. 24.02.2017
  • Похоже, ошибка вызвана hc_colors(, color), я предполагаю, что у вас есть вектор color, который вы не включили в свой код. 24.02.2017
  • :-( Я думал, что это было в коде выше. Действительно, я определил вектор с именем cols <- c("#E5E5E5", "#1874CD"). Мне очень жаль. 24.02.2017
  • Это не делает этого на моей консоли. Та же ошибка. Плохая идея — называть векторы теми же именами, что и существующие функции, потому что это сильно затрудняет отладку, а cols и colors являются функциями R. Я предлагаю начать с нового сеанса, а затем предоставить полную копию сеанса консоли, включая все вызовы библиотеки и создание объектов. 24.02.2017
  • Извините, это нужно задокументировать 24.02.2017

Ответы:


1

Вы можете создать строковую переменную с именованными (действительными css) или шестнадцатеричными цветами:

Top_G <- mutate(Top_G, coloract = ifelse(Active == "Activo", "#FF0000", "#00FFFF"))

А затем используйте:

hc_add_series(Top_G, "column", hcaes(x = Name, y = G, color = coloract), name = "G", showInLegend = FALSE)

Вы также можете использовать функцию colorize:

Top_G <- mutate(Top_G, coloract = colorize(Active, c("#FF0000", "#00FFFF")))

введите описание изображения здесь

24.02.2017
  • @42 спасибо за ваши усилия и еще раз извините за отсутствие информации. 24.02.2017
  • Новые материалы

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

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..