我的数据框看起来像这样:
<!DOCTYPE html>
<html xmlns:wicket>
<body>
<table cellspacing="0" class="dataview">
<tbody>
<tr wicket:id="simple">
<td><span wicket:id="id">Test ID</span></td>
</tr>
</tbody>
</table>
<div wicket:id="navigator"></div>
</body>
</html>
当我绘制它时看起来像这样。注意A线的位置
d= data.frame(Name = c("B","A","A","B","A","B"),
Group= c("one","one","two","two","three","three"),
value=c(.5,.6,.7,.8,.4,.2))
d
Name Group value
1 B one 0.5
2 A one 0.6
3 A two 0.7
4 B two 0.8
5 A three 0.4
6 B three 0.2
现在我想使用比例颜色手册为这些线着色,如下所示:
ggplot(d,
aes(x=factor(Group),
y= value,
group= Name , color =Name)) +
geom_point()+geom_line()
产生这个图像,其中&#34; A&#34;线路不正确。它现在是&#34; B&#34;线。如何使用col_vector中的颜色缩放颜色手动以更改输出,但保持正确的输出?
答案 0 :(得分:2)
函数unique()
按顺序返回值,因为它们位于数据框中。
unique(d$Name)
[1] B A
Levels: A B
所以你应该使用函数levels()
。
levels(d$Name)
[1] "A" "B"
如果变量未存储为因子,则可以添加sort()
函数。
sort(unique(d$Name))
[1] "A" "B"
答案 1 :(得分:0)
您可以在labels
函数中使用scale_color_manual
随意更改标签名称。
例如,运行以下代码:
p <- ggplot(d, aes(x=factor(Group),y= value,
group= Name , color =Name)) +geom_point()+geom_line()
p <- scale_color_manual(labels = c('ti','to'),
values= col_vector[14:(14+(length(unique(d$Name)) )-1)])
然后,d$Name
中的第一个条目是B
(这是unique
发回的内容)
我建议先创建一个命名向量,然后在scale_color_manual
中使用该向量:
newPal<-setNames(col_vector[14:(14+(length(unique(d$Name)) )-1)],unique(d$Name))
p + scale_color_manual(values=newPal)