Я создал функцию, которая использует ggvis для графического отображения некоторых данных, которые мы регулярно просматриваем. В этом окончательная группа «В целом» перезаписывается, чтобы показать черную линию с шириной 3 вместо значения по умолчанию. К сожалению, шаги, которые я предпринял для переопределения значения по умолчанию, не отображаются в легенде. Я не уверен, что делать, чтобы сделать эту работу. Я попытался специально вызвать add_legend, но это не сработало.Как я могу привести легенду ggvis в соответствие с графиком?
Код, используемый для создания этого (также с некоторыми случайными данными):
CAL_DATE = seq(as.Date("10/1/2015", format = "%m/%d/%Y"),
as.Date("3/31/2016", format = "%m/%d/%Y"), by = 1)
CAL_DATE = as.POSIXct(CAL_DATE)
a = data.frame(cbind(ma_AHT = round(rweibull(length(CAL_DATE),
5, 500),0), CT_DS = rep("A",length(CAL_DATE))))
b = data.frame(cbind(ma_AHT = round(rweibull(length(CAL_DATE),
4, 540),0), CT_DS = rep("B", length(CAL_DATE))))
Overall = data.frame(cbind(ma_AHT = round(rweibull(length(CAL_DATE),
10, 475),0), CT_DS = rep("Overall", length(CAL_DATE))))
a$CAL_DATE = CAL_DATE
b$CAL_DATE = CAL_DATE
Overall$CAL_DATE = CAL_DATE
data = rbind(a, b, Overall)
plot_ma = function(x){
x %>%
group_by(CT_DS) %>%
ggvis(~CAL_DATE, ~ma_AHT, stroke = ~CT_DS) %>%
layer_lines() %>%
filter(CT_DS == "Overall") %>%
layer_lines(stroke := "black", strokeWidth := 3) %>%
set_options(renderer = "canvas") %>%
add_legend("stroke", title = "~ CT") %>%
add_axis("x", title = "Date", title_offset = 60,
properties = axis_props(
labels = list(
angle = -50,
align = "right",
baseline = "middle"
))) %>%
add_axis("y", title = "M.A. AHT (sec)")
}
plot_ma(data)
Который должен генерировать что-то вроде ниже. Моя единственная проблема заключается в том, как сделать легендарное шоу «Общий» также черным.
Вы можете добавить небольшой пример набора данных? – aosmith
Если 'Total' всегда будет последним, я думаю, вы могли бы просто определить цвета в' scale_nominal' через 'range'. В вашем простом примере это будет нечто вроде «scale_nominal» («stroke», range = c («синий», «оранжевый», «черный»)).Для большего количества групп вы можете сделать вектор цветов или вытащить цвета из образца для количества групп, которые у вас есть, а затем добавить «черный» до конца. – aosmith
Число групп может сильно различаться между наборами данных. Не могли бы вы дать мне больше информации о том, как вытаскивать цвета из образца? Я заглянул внутрь объекта ggvis, чтобы попытаться найти, где он может быть, но не имел успеха. –