2013-04-23 3 views
0

Я не уверен, почему у меня возникает такая проблема с повторяющимися ярлыками x-scale, а не только с меткой, где есть измеренная точка. Кроме того, мои ярлыки для моей легенды не работают.Повторяющиеся метки оси X и метки легенд в ggplot2

FamIncome Ethnicity mean.bmi 
1 1 1 28.54250 
2 1 2 26.66300 
3 1 3 26.62105 
4 1 4 29.51396 
5 1 5 25.66722 
6 2 1 29.62404 
7 2 2 28.08393 
8 2 3 28.62215 
9 2 4 28.97561 
10 2 5 25.57714 
11 3 1 29.52630 
12 3 2 28.27235 
13 3 3 29.67060 
14 3 4 31.36768 
15 3 5 26.13361 
16 4 1 30.83368 
17 4 2 30.80814 
18 4 3 29.29594 
19 4 4 29.18521 
20 4 5 24.80550 
21 5 1 29.76500 
22 5 2 29.24404 
23 5 3 28.89435 
24 5 4 31.48172 
25 5 5 28.02522 
26 6 1 30.05087 
27 6 2 29.88574 
28 6 3 29.53793 
29 6 4 30.97993 
30 6 5 25.57857 
31 7 1 30.31787 
32 7 2 29.28055 
33 7 3 28.50421 
34 7 4 30.65427 
35 7 5 26.66094 
36 8 1 29.15000 
37 8 2 29.02789 
38 8 3 28.36507 
39 8 4 33.51915 
40 8 5 28.38263 
41 9 1 28.17679 
42 9 2 28.74731 
43 9 3 28.06196 
44 9 4 31.38483 
45 9 5 26.96000 
46 10 1 28.71633 
47 10 2 33.44409 
48 10 3 30.63048 
49 10 4 30.22587 
50 10 5 27.36375 
51 14 1 30.78161 
52 14 2 27.43575 
53 14 3 28.96817 
54 14 4 32.22378 
55 14 5 25.62778 
56 15 1 29.15982 
57 15 2 27.42672 
58 15 3 27.60567 
59 15 4 30.05013 
60 15 5 26.80271 

код ниже:

a <- ggplot(nh1, aes(x=FamIncome, y=mean.bmi)) + geom_line(aes(group=Ethnicity, colour = Ethnicity)) + geom_point() 
a = a + labs(list(title="Average BMI versus Family Income", x = "Family Income", y = "Average BMI")) 
a = a + scale_x_discrete(breaks=c("1","2","3","4","5","6","7","8","9","10","14","15"), 
     labels = c("0-4,999", "5K-9,999", "10K-14,999", "15K-19,999", "20K-24,999", "25K-34,999", "35K-44,999", "45K-54,999", "55K-64,999", "65K-74,999", "75K-100K", "Over 100K")) 
a = a + theme(axis.text.x=element_text(angle=-90)) 
a = a + scale_colour_continuous(name = "Ethnicity", 
         breaks=c("5","4","3","2","1"), 
         labels=c("Other Race/Multi", "Black","White","Other Hispanic", "Mexican-American")) 

a 

Я не могу разместить снимок изображения, которое я получаю, пока я не получаю больше 2 «репутацию» указывает

+0

@ user1317221_G Я ценю, что вы редактируете вопрос - я не мог понять, как его создать, даже если он основан на подсказках форматирования! – MryElln

+0

Я не могу определить из вашего описания, что относительно вывода является неправильным. Я скажу вам, что вы используете устаревшую версию ggplot ('opts' устарел). Когда я запускаю это, я не вижу ничего явно неправильного. – joran

+0

Я хотел включить изображение того, что происходит не так, но я слишком новичок в Stack Overflow, чтобы сделать это. Что происходит, так это то, что у меня есть FamIncome, разделенный на 1-10,14 и 15. Я пытаюсь переименовать те, и когда я это делаю и рисую, я получаю разрывы по оси x в неправильном месте и маркировку что я добавил, начинает повторяться до конца. Я предполагаю, что это проблема, связанная с тем, как ослабевает ось x, и пытаюсь выяснить, как исправить это в ggplot, или как настроить мой набор данных. . Я добавил то, что я изменил, к исходному сообщению , – MryElln

ответ

1

Попробуйте преобразовать переменную х к фактор:

a <- ggplot(nh1, aes(x=factor(FamIncome), y=mean.bmi)) + geom_line(aes(group=Ethnicity, colour = factor(Ethnicity))) 
a = a + labs(list(title="Average BMI versus Family Income", x = "Family Income", y = "Average BMI")) 
a = a + scale_x_discrete("Family Income", labels = c("0-4,999", "5K-9,999", "10K-14,999", "15K-19,999", "20K-24,999", "25K-34,999", "35K-44,999", "45K-54,999", "55K-64,999", "65K-74,999", "75K-100K", "Over 100K")) 
a = a + opts(axis.text.x=theme_text(angle=-90)) 
a = a + scale_colour_discrete(name = "Ethnicity", 
         breaks=c("5","4","3","2","1"), 
         labels=c("Other Race/Multi", "Black","White","Other Hispanic", "Mexican-American")) 

enter image description here

С числовой переменной x ggplot обрабатывает ее как числовую шкалу, когда вы действительно намеревались ее категоризировать. Также обратите внимание на путаницу между fill и colour. fill предназначен для областей с двумерным заполнением.

+0

Вот что я искал! Я подумал, что это проблема, поскольку я получал ошибки относительно непрерывности. Есть ли причина, почему маркировка для Legend не работает? – MryElln

+0

@MryElln Извините, должен был поймать и это. В основном то же самое. Редактирование ... – joran

+0

Замечательно! Большое спасибо. – MryElln

Смежные вопросы