Data yang saya mainkan berasal dari sumber internet yang tercantum di bawah ini
nba <- read.csv("http://datasets.flowingdata.com/ppg2008.csv", sep=",")
Yang ingin saya lakukan, adalah membuat grafik titik 2D membandingkan dua metrik dari tabel ini, dengan masing-masing pemain mewakili sebuah titik pada grafik. Saya memiliki kode berikut:
nbaplot <- ggplot(nba, aes(x= MIN, y= PTS, colour="green", label=Name)) +
geom_point()
Ini memberi saya yang berikut:
Yang saya inginkan adalah label nama pemain tepat di sebelah titik-titik. Saya pikir fungsi label dalam estetika ggplot akan melakukan ini untuk saya, tetapi ternyata tidak.
Saya juga mencoba text()
fungsi dan textxy()
fungsinya library(calibrate)
, yang keduanya tidak berfungsi dengan ggplot.
Bagaimana saya bisa menambahkan label nama ke titik-titik ini?
ggplot2
. Mungkin ini bisa membantu Anda.hjust = -0.1
untuk mendapatkan label yang dicetak sedikit jauh dari titik data.The
ggrepel
paket karya besar untuk memukul mundur tumpang tindih label teks dari satu sama lain. Anda dapat menggunakangeom_label_repel()
(menggambar kotak di sekitar teks) ataugeom_text_repel()
fungsi.Sunting: Untuk digunakan
ggrepel
dengan garis, lihat ini dan ini .Dibuat pada 2019-05-01 oleh paket reprex (v0.2.0).
sumber
ggplot2
dev yang menyebutkan hal serupa github.com/tidyverse/ggplot2/commit/… . Anda dapat mencoba menginstal kedua versi devggplot2
&ggrepel
untuk melihat apakah masalah Anda telah diperbaikilemon
paket yang sangat bagus dalam memanipulasi legenda plot.Alih-alih menggunakan ifelse seperti pada contoh di atas, kita juga dapat memfilter data sebelum pelabelan berdasarkan beberapa nilai ambang, ini menghemat banyak pekerjaan untuk perangkat plot:
sumber