Спарклайн R создает html-таблицу

Я нашел пакет sparkline:https://github.com/htmlwidgets/sparkline

но я понятия не имею, как создать в markdown/html data.frame с помощью искровых диаграмм.

Я знаю, что в приведенной выше ссылке есть пример, но я не знаю, как автоматически создать этот фрейм данных в html.


person Taz    schedule 17.09.2015    source источник


Ответы (2)


Я не совсем уверен, в чем ваша проблема или на какой фрейм данных вы ссылаетесь. Пример по предоставленной вами ссылке работает отлично. Попробуйте выполнить следующие шаги

  1. Запустить R Studio
  2. Установите пакет sparkline, если у вас его нет.

    library(devtools)
    install_github('htmlwidgets/sparkline')
    
  3. Используйте File -> New File -> R markdown

  4. Скопируйте пример из htmlwidgets в редакторе и нажмите кнопку Knitr.

и вы получите файл html с несколькими примерами.

person ekstroem    schedule 18.09.2015

Я думаю, это то, что вы ищете: https://leonawicz.github.io/HtmlWidgetExamples/ex_dt_sparkline.html

вы также можете найти фиктивный пример здесь: R, объединяющий таблицы данных пакета DT и блок-графика пакета спарклайна с целевым значением

В качестве примера: приведенный ниже фиктивный пример (игнорировать последний столбец в данных/таблице)

            library(data.table)
            library(DT)
            library(sparkline)



            hist.A<-rnorm(100)
            hist.B<-rnorm(100)
            hist.C<-rnorm(100)

            current.A<-rnorm(1)
            current.B<-rnorm(1)
            current.C<-rnorm(1)

            #whisker should show full range of data
            boxval.A<-paste(quantile(hist.A,probs=c(0,0.25,0.5,0.75,1)),collapse = ",")
            boxval.B<-paste(quantile(hist.B,probs=c(0,0.25,0.5,0.75,1)),collapse = ",")
            boxval.C<-paste(quantile(hist.C,probs=c(0,0.25,0.5,0.75,1)),collapse = ",")

            data<-data.frame(Variable=c("A","B","C"),Current=c(current.A,current.B,current.C),boxplot=c(boxval.A,boxval.B,boxval.C))
            data$boxWithTarget<-paste(data$boxplot,data$Current,Sep=",")

            cd <- list(list(targets = 2, render = JS("function(data, type, full){ return '<span class=sparkSamples>' + data + '</span>' }")))
            line_string <- "type: 'line', lineColor: 'black', fillColor: '#ccc', highlightLineColor: 'orange', highlightSpotColor: 'orange'"
            box_string <- "type: 'box', raw:true, showOutliers:false,lineColor: 'black', whiskerColor: 'black', outlierFillColor: 'black', outlierLineColor: 'black', medianColor: 'black', boxFillColor: 'orange', boxLineColor: 'black'"
            cb = JS("function (oSettings, json) {\n  $('.sparkSeries:not(:has(canvas))').sparkline('html', { ", 
                    line_string, " });\n  $('.sparkSamples:not(:has(canvas))').sparkline('html', { ", 
                    box_string, " });\n}")


            d <- datatable(data.table(data), rownames = FALSE, options = list(columnDefs = cd, 
                                                                                 fnDrawCallback = cb))
            d$dependencies <- append(d$dependencies, htmlwidgets:::getDependency("sparkline"))
            d
person CapChaos    schedule 15.02.2017
comment
Хотя ваш ответ на 100% правильный, он также может стать на 100% бесполезным, если эти ссылки будут перемещены, изменены, объединены с другим или основной сайт просто исчезнет... :-( Поэтому, пожалуйста, отредактируйте свой ответ и скопируйте соответствующие шаги из ссылки в свой ответ, тем самым гарантируя ваш ответ на 100% времени жизни этот сайт! ;-) Вы всегда можете оставить ссылки внизу вашего ответа в качестве источника для вашего материала... - person Donald Duck; 15.02.2017