ggplot2 эквивалент "факторизации или категоризации" в googleVis в R


Благодаря статическому графику, подготовленному ggplot, мы переводим наши графики в googleVis с интерактивными диаграммами. Но когда дело доходит до категоризации, мы сталкиваемся со многими проблемами. Позвольте мне привести пример, который поможет вам понять:

#dataframe
df = data.frame( x = sample(1:100), y = sample(1:100), cat = sample(c('a','b','c'), 100, replace=TRUE) )

Ggplot2 предоставляет параметр alpha, colour, linetype, size , который мы можем использовать с категориями, как показано ниже:

ggplot(df) + geom_line(aes(x = x, y = y, colour = cat))

Не только линейный график, но и большинство графиков ggplot2 обеспечивают классификацию на основе значений столбцов. Теперь я хотел бы сделать то же самое в googleVis, основываясь на значении df$cat, я хотел бы, чтобы параметры были изменены или группировка линий или диаграмм.

Примечание: Я уже пытался dcast сделать несколько столбцов на основе столбца категории и использовать эти несколько столбцов в качестве входных данных Y, но это не то, что я хотел бы сделать.

Может ли кто-нибудь помочь мне в этом вопросе? Дайте мне знать, если вам понадобится дополнительная информация.
1 4

1 ответ:

vrajs5 вы не одиноки! Мы боролись с этим вопросом. В нашем случае мы хотели fill гистограммы, как в ggplot. Это и есть решение. Вам нужно добавить специально именованные столбцы, связанные с вашими переменными, в вашу таблицу данных для googleVis, чтобы забрать.

В моем примере заполнения они называются роли , но как только вы видите мой синтаксис, вы можете абстрагировать его в аннотации и другие интересные функции. У Google они все задокументированы здесь (проверьте супергероев пример!) но не было очевидно, как это применимо к r.

@mages имеет это документально на этой веб-странице, которая показывает функции не в demo(googleVis):

Http://cran.r-project.org/web/packages/googleVis/vignettes/Using_Roles_via_googleVis.html

ПРИМЕР ДОБАВЛЕНИЯ НОВЫХ ИЗМЕРЕНИЙ В ДИАГРАММЫ GOOGLEVIS

# in this case
# How do we fill a bar chart showing bars depend on another variable? 
#   We wanted to show C in a different fill to other assets

suppressPackageStartupMessages(library(googleVis))
library(data.table) # You can use data frames if you don't like DT

test.dt  = data.table(px = c("A","B","C"), py = c(1,4,9),
                      "py.style" = c('silver', 'silver', 'gold'))

# Add your modifier to your chart as a new variable e.g. py1.style
test <-gvisBarChart(test.dt, 
                    xvar = "px",
                    yvar = c("py", "py.style"),
                    options = list(legend = 'none'))
plot(test)

Мы показали здесь детерминистически py.style, но вы можете закодировать его, чтобы он зависел от ваших категорий.

Секрет в том, что myvar.googleVis_thing_youneed связывание переменной myvar с функцией googleVis.

Результат перед заливкой (yvar = "py") GoogleVisBarChartBeforeRoleStyleexample

Результат после заполнения (yvar = c("py", " py.стиль"))

GoogleVisBarChartRoleStyleExample

Взгляните на примеры магов (код также на Github), и вы взломаете проблему "категоризации на основе значений столбцов".