使用ggplot2
,我试图在极线图中绘制两种治疗方法。我能够绘制两种治疗的点,并为我输入的第一次治疗获得一条线,但是我要连接第二组的线只是覆盖在第二组上。
category highest lowest
1 A 71 23
2 B 81 38
3 C 77 22
4 D 83 56
5 E 84 32
6 F 82 55
7 G 73 26
到目前为止,我的代码看起来像这样
p1<-ggplot(data=d,aes(x=factor(category),y=highest,group=1)) +
ylim(0,NA) +
geom_point(color='purple',stat='identity')+
geom_polygon(color='purple',fill=NA)+
coord_polar(start =-pi* 1/7)
p1
p1 +
geom_point(aes(x=factor(category),y=lowest),color='green',stat='identity')+
geom_polygon(color='green',fill=NA)+
coord_polar(start =-pi* 1/7)
它看起来像这样
有任何帮助吗?谢谢!
答案 0 :(得分:0)
您仍然在第二次geom_polygon
来电中使用整体美学(“最高”)。要绘制不同的列,您需要在图层中的aes
中定义它。
geom_polygon(aes(y = lowest), color='green',fill=NA)
这种情节的更标准方法是将数据集转换为长格式,其中您将变量(最高和最低)分组为变量,并且所有y值都在单个列中进行绘图。
library(reshape2)
d2 = melt(d, id.var = "category")
完成后,您可以将color
映射到分组变量。您可以使用scale_color_manual
将颜色设置为特定值。你默认得到一个传奇(这可能是一件好事),但是你使用guide = "none"
来压制它。
ggplot(data=d2, aes(x=factor(category), y=value, group = variable, color = variable)) +
ylim(0,NA) +
geom_point(, stat='identity') +
geom_polygon(fill=NA)+
coord_polar(start =-pi* 1/7) +
scale_color_manual(values = c("purple", "green"), guide = "none")