在geom_point中标记点
我正在玩的数据来自下面列出的互联网来源
nba <- read.csv("http://datasets.flowingdata.com/ppg2008.csv", sep=",")
我想要做的是创build一个2D点图,比较这个表中的两个度量,每个玩家在图上代表一个点。 我有以下代码:
nbaplot <- ggplot(nba, aes(x= MIN, y= PTS, colour="green", label=Name)) +geom_point()
这给了我以下几点:
我想要的是点旁边的玩家名字标签。 我认为ggplot美学中的标签function会为我做到这一点,但事实并非如此。
我也尝试了text()
函数和library(calibrate)
的textxy()
函数,这两个函数都不能与ggplot一起使用。
我如何添加名称标签到这些点?
使用geom_text
和aes
标签。 你可以玩,调整文本的位置。
ggplot(nba, aes(x= MIN, y= PTS, colour="green", label=Name))+ geom_point() +geom_text(aes(label=Name),hjust=0, vjust=0)
编辑:只标记高于某个阈值的值:
ggplot(nba, aes(x= MIN, y= PTS, colour="green", label=Name))+ geom_point() + geom_text(aes(label=ifelse(PTS>24,as.character(Name),'')),hjust=0,vjust=0)
在上面的例子中,除了使用ifelse外,还可以根据某些阈值对数据进行预先过滤,从而为绘图设备节省了大量的工作量:
xlimit <- 36 ylimit <- 24 ggplot(myData)+geom_point(aes(myX,myY))+ geom_label(data=myData[myData$myX > xlimit & myData$myY> ylimit,], aes(myX,myY,myLabel))