Я использую ggplot2 для построения следующих данных, используя geom_area
. Значения предназначены для зеркального отображения оси x. Но конец сюжета для собаки не отражен.ggplot2 geom_area участки неожиданно (заканчивается в неправильном месте)
Но, как вы можете видеть из этого кадра данных собаки должен заканчиваться на й = 100 и у = 0, но это, кажется, заканчивается й = 100 и у = 100 (см последней строки)
Как я могу точно сделать кошку для собак?
x y animal
1 100.0 100 cat
2 90.0 89 cat
3 84.0 85 cat
4 55.5 60 cat
5 28.3 37 cat
6 27.0 32 cat
7 18.0 25 cat
8 0.0 0 cat
9 0.0 100 dog
10 10.0 89 dog
11 16.0 85 dog
12 44.5 60 dog
13 71.7 37 dog
14 73.0 32 dog
15 82.0 25 dog
16 100.0 0 dog
dat <- structure(list(x = c(100, 90, 84, 55.5, 28.3, 27, 18, 0, 0, 10,
16, 44.5, 71.7, 73, 82, 100), y = c(100, 89, 85, 60, 37, 32,
25, 0, 100, 89, 85, 60, 37, 32, 25, 0), animal = c("cat", "cat",
"cat", "cat", "cat", "cat", "cat", "cat", "dog", "dog", "dog",
"dog", "dog", "dog", "dog", "dog")), class = "data.frame", row.names = c(NA,
-16L), .Names = c("x", "y", "animal"))
library(ggplot2)
ggplot(dat) + theme_bw() +
geom_area(aes(x=x, y=y, group=animal, fill=animal), alpha=.3)
Как ни странно, если бы я только подмножество собаки это участки правильно:
ggplot(subset(dat, animal=="dog")) + theme_bw() +
geom_area(aes(x=x, y=y, group=animal, fill=animal), alpha=.3)
'geom_line' работает должным образом, что может быть подсказкой, как это делает Подменю просто«кошки». Я использую ggplot2_1.0.0 –
Не уверен, имеет ли это какое-либо значение/релевантность, но если вы удалите, например, первую строку данных, она работает как ожидалось (но, конечно, кошка выглядит по-другому из-за недостающей точки данных. .) –
добавить 'order = y' в' aes' или 'dat [order (dat $ y),]' (PS у меня нет объяснений;)) – user20650