Я пытаюсь создать функцию, которая позволяет мне быстро проверять цвета, хранящиеся в векторе. Например, у меня есть этот вектор:
mycolors <- c("#009900", "#69ce69", "#56B4E9", "#CCCCCC", "#E69F00", "#D55E00")
Я попытался сделать множество различных вариантов функции ниже, чтобы увидеть, какой цвет находится в каком месте в векторе и как это выглядит:
test.palette <- function(cbPalette){
datatest <- data.frame(
col = cbPalette,
x = 1:length(cbPalette),
val = rep(1, length(cbPalette))
)
datatest$col <- levels(datatest$col)[datatest$col]
print(datatest)
myplot <- ggplot(data = datatest, mapping = aes(x = x, y = val, fill = col)) +
geom_bar(stat="identity", width=.5) +
# scale_fill_manual(values = rev(datatest$col))
scale_fill_manual(values = datatest$col)
print(myplot)
}
mycolors <- c("#009900", "#69ce69", "#56B4E9", "#CCCCCC", "#E69F00", "#D55E00")
test.palette(cbPalette = mycolors)
Результат, который я должен sh достичь, - это иметь одну полосу для каждого цвета в моем векторе, где первая полоса имеет цвет, сохраненный как первая строка в векторных mycolors . Под каждой полосой мне нужен индекс в mycolors, который соответствует цвету этой полосы. Я также хотел бы иметь легенду с цветами полосок рядом с текстовыми строками из mycolors, соответствующими каждому цвету.
Проблема в том, что цвета полосок не отображаются в том же порядке, что и вектор и что цвета в легенде не совпадают с метками рядом с ними.
Возможно, можно было бы упростить проверку цветов в векторе, но поскольку я буду использовать ggplot2 для создания гистограмм, повторно использовать цвета из mycolors и других векторов, я был бы очень признателен за решение с использованием ggplot2 и geom_bar ().