2015-06-29 2 views
1

У меня есть функция, которая объединяет наборы данных и присваивает цвета каждый как код виден нижеЗаполнение гистограммы столбца названий цветов

x1 <- rep(1:10, each = 3, times = 3) 
x2 <- rep(1:7, each = 7, times = 2) 
x3 <- rep(6:9, each = 11, times = 4) 
y1 <- rep(1:5, each = 2, times = 9) 
y2 <- rep(1:14, times = 7) 
y3 <- rep(1:11, times = 16) 
color1 <- rep("blue", times = length(x1)) 
color2 <- rep("red", times = length(x2)) 
color3 <- rep ("green", times = length(x3)) 
data1 <- cbind(x1, y1, color1) 
data2 <- cbind(x2, y2, color2) 
data3 <- cbind(x3, y3, color3) 
alldata <- data.frame(rbind(data1, data2, data3)) 
colnames(alldata) <- c("x", "y", "color") 

ggplot(data = alldata, aes(x=x), position = "dodge") 
+ geom_histogram(fill =  alldata$color) 

ggplot(data = alldata, aes(x=x, y=y)) + geom_point(colour = alldata$color) 

Я задавался вопрос, почему цвета не назначается на гистограмму, но они передаются в точки разброса.

Ошибка я получаю

Error: Incompatible lengths for set aesthetics: fill 

По существу, данные сгруппированы по цветам, и я хочу, чтобы цвет присваивается каждой группе быть цвета представлены в гистограмме.

+0

Что вы желаемый результат? – mts

+1

Использовать 'geom_histogram (aes (fill = color))'? – Vlo

+0

Возможно, что-то вроде этого 'ggplot (alldata, aes (x = x, fill = color)) + geom_bar()' – mts

ответ

1

Вы хотите отобразить переменный цвет, чтобы заполнить и использовать эти значения без масштабирования:

ggplot(alldata, aes(x=x, fill = color)) + 
    geom_histogram(position = "dodge") + 
    scale_fill_identity() 
Смежные вопросы