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 ответ:
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")
Результат после заполнения (yvar = c("py", " py.стиль"))
Взгляните на примеры магов (код также на Github), и вы взломаете проблему "категоризации на основе значений столбцов".