Saya memiliki plot garis yang dibuat dengan kode ini:

# Create data
year <- c(2006,2007,2008,2009,2010,2011,2012,2013,2014)
sales <- c(4176,8560,6473,10465,14977,15421,14805,11183,10012)
df <- data.frame(year,sales)

# Plot
ggplot(data = df,aes(year, sales),group = 1) + geom_point() + geom_line()

Saya ingin membubuhi keterangan dengan garis yang "menunjukkan" nilai maksimum seperti contoh di bawah ini:

enter image description here

Apakah ini mungkin dengan ggplot?

1
EGM8686 12 Mei 2021, 19:01

2 jawaban

Jawaban Terbaik

Iya. Untuk contoh Anda saat ini, coba ini:

ggplot(data = df,aes(year, sales),group = 1) + geom_point() + geom_line() + 
       geom_segment(aes(x = 2011, y = 0, xend = 2011, yend = 15421),linetype="dashed", color = "red")

Tentu saja, untuk kebutuhan plot yang lebih umum, Anda dapat meningkatkan kode daripada memasukkan nilai secara manual di sini.

0
Jeremy 12 Mei 2021, 16:12

Ini sudah dekat, hanya perlu panah:

ggplot(data = df,aes(year, sales),group = 1) + geom_point() + geom_line() + theme_bw() + 
  geom_linerange(aes(ymax=sales, ymin=min(df$sales)), 
                 data=df[which.max(df$sales),], 
                 col="red", lty=2) + 
  geom_text(aes(label=sales),data=df[which.max(df$sales),], hjust=1.2, vjust=3)

Ini bekerja dengan menambahkan geom_linerange dan geom_text geom tetapi mengatur data untuk masing-masing menjadi baris kumpulan data asli yang sesuai dengan maksimum kolom 'penjualan'.

0
George Savva 12 Mei 2021, 16:27