2016-11-01 3 views
0

Я создал участок ggplot2, где я борюсь с 2 вещами.ggplot2 сюжет вопрос в R

1) Как изменить цвета?

2) Почему отсутствует линия между пунктами 9 и 10?

cent <- rnorm(n=20, mean=5, sd=1) 
num <- c(1:20) 
groups2 <- c(rep("DSM Symptoms",9),rep("Non-DSM Symptoms",11)) 
data2 <- data.frame(num, cent, groups2) 

ggplot(data2, aes(x=num, y=cent, fill=groups2, colour=groups2)) + 
    geom_line(color='#666666', size=0.7) + 
    geom_point() + 
    ylab('Strength Centrality') + xlab ('Symptoms') + 
    scale_x_reverse() + 
    scale_x_continuous(breaks = c(1:20)) + 
    coord_flip() + 
    theme_bw() + 
    theme(panel.grid.minor.y = element_blank()) 

screenshot

+1

Удалите 'fill' в' aes', если вы хотите одну строку. 'scale_color_manual (значения = c (« зеленый »,« желтый »)). Если вы хотите изменить цвет точек на зеленый и желтый, например. – Haboryme

+1

Чтобы подключить линии, используйте 'group = 1' в' geom_line' - 'geom_line (color = '# 666666', size = 0.7, group = 1)'. Вы можете использовать «scale_color_manual» для изменения цветов «scale_color_manual» (значения = c («зеленый», «оранжевый»)). – JasonAizkalns

+1

Кроме того, 'scale_x_reverse' получает переопределение 'scale_x_continuous'. Используйте один или другой. – alistaire

ответ

1

Рабочий пример:

ggplot(data2, aes(x=num, y=cent, colour=groups2)) + 
    geom_line(color='#666666', size=0.7) + 
    geom_point() + 
    ylab('Strength Centrality') + xlab ('Symptoms') + 
    scale_x_continuous(breaks = c(20:1)) + 
    coord_flip() + 
    theme_bw() + scale_color_manual(values=c("cyan","green"))+ 
    theme(panel.grid.minor.y = element_blank()) 

Примечание scale_color_manual(values=c(...)) и отсутствие параметра fill в разделе aes thetics.

enter image description here

Обратите внимание, что если вы хотите, чтобы изменить порядок, вам нужно сделать что-то вроде scale_x_reverse(breaks=c(1:20)) поскольку scale_x_... параметры заменяют друг друга, и только последняя выполнена.