我有以下数据框,咖啡馆:
cafe_type X Y
bread - white 354 1
bread - wheat 674 3
bread - rye 756 4
bread - sourdough 234 2
milk - cow 454 6
milk - soy 345 7
milk - almond 323 8
bagel - white 234 3
bagel - everything 453 4
bagel - wheat 556 6
bagel - egg 678 9
我使用以下图形绘制了这些数据:
ggplot(cafe, aes(X,Y)) + geom_point()
我想按行名称(即面包)中的第一个单词对数据进行分组,然后为每个组选择不同的调色板(即每个面包点是不同的橙色阴影,每个牛奶点是不同的颜色蓝色阴影,每个百吉饼都是绿色阴影)。我在使用group_by函数时遇到了错误,并且不确定如何继续。任何帮助将不胜感激!
谢谢, 杰西
答案 0 :(得分:0)
我要解决的第一件事是将您的食物作为实际列放入data.frame中。
cafe$item <- factor(rownames(cafe), levels = unique(rownames(cafe)))
接下来,您将要构建图。在项目aes()
中添加颜色。
ggplot(df, aes(X, Y, colour = item)) +
geom_point() +
scale_colour_manual(
breaks = levels(cafe$item),
limits = levels(cafe$item),
values = c("orange", "darkorange", "orange2", "darkorange2",
"dodgerblue", "blue", "deepskyblue",
"limegreen","forestgreen","green","lawngreen")
)
现在,棘手的一点是使食物的顺序正确无误,这是通过breaks
内的limits
和scale_colour_manual()
完成的。要做的工作是为自己喜欢的食物选择颜色,但是您可以随意尝试颜色。这就是我的情节:
我不知道您的group_by()
中的错误来自何处,但我认为您不需要它来制作情节。祝你好运!