Данные, с которыми я играю, взяты из интернет-источника, указанного ниже
nba <- read.csv("http://datasets.flowingdata.com/ppg2008.csv", sep=",")
Что я хочу сделать, так это создать двухмерный график точек, сравнивая две метрики из этой таблицы, где каждый игрок представляет точку на графике. У меня есть следующий код:
nbaplot <- ggplot(nba, aes(x= MIN, y= PTS, colour="green", label=Name)) +
geom_point()
Это дает мне следующее:
То, что я хочу, это ярлык с именем игрока рядом с точками. Я думал, что функция метки в эстетике ggplot сделает это для меня, но это не так.
Я также попробовал text()
функцию и textxy()
функцию из library(calibrate)
, ни один из которых не работает с ggplot.
Как я могу добавить ярлыки к этим точкам?
ggplot2
. Может быть, это может помочь вам.hjust = -0.1
чтобы немного отодвинуть напечатанные этикетки от точки данных.ggrepel
Пакет работает отлично подходит для отпугивания перекрывающихся текстовых меток на расстоянии друг от друга. Вы можете использовать либоgeom_label_repel()
(рисует прямоугольники вокруг текста), либоgeom_text_repel()
функции.Изменить: чтобы использовать
ggrepel
со строками, увидеть это и это .Создано в 2019-05-01 пакетом представлением (v0.2.0).
источник
ggplot2
dev, в котором упоминалось нечто подобное github.com/tidyverse/ggplot2/commit/… . Вы можете попробовать установить обе версии devggplot2
& &,ggrepel
чтобы увидеть, исправлена ли ваша проблемаlemon
пакет, который очень хорош в манипулировании легендой сюжета.Вместо использования ifelse, как в приведенном выше примере, можно также предварительно отфильтровать данные перед маркировкой на основе некоторых пороговых значений, это сэкономит много работы для устройства печати:
источник