Başlangıç ​​noktasını 0'dan başlamaya zorla


139

Ggplot2'de y ekseninin ve x ekseninin orijinini / kesişmesini nasıl ayarlayabilirim?

X ekseninin çizgisi tam olarak konumunda olmalıdır y=Z.

İle Z=0veya verilen başka bir değer.

Yanıtlar:


199

xlimve ylimburada kesmeyin. Sen kullanmak gerekir expand_limits, scale_x_continuousve scale_y_continuous. Deneyin:

df <- data.frame(x = 1:5, y = 1:5)
p <- ggplot(df, aes(x, y)) + geom_point()
p <- p + expand_limits(x = 0, y = 0)
p # not what you are looking for

resim açıklamasını buraya girin

p + scale_x_continuous(expand = c(0, 0)) + scale_y_continuous(expand = c(0, 0))

resim açıklamasını buraya girin

En örneğin noktası (emin noktaları kesti sakın yapma işler biraz ayarlamak görmek gerekebilir x = 5ve y = 5.


29
Sınırları da belirtmem gerekiyordu:, bir scale_x_continuous(expand = c(0, 0), limits = c(0,5))şekilde işe yaramadı
JelenaČuklina

3
Sanırım bir parça daha faydalı olabilir, bu da expand=expand_scale(mult=c(0,0.1))hala üst uçlarda dolgu alırsınız: stackoverflow.com/a/59056123/8400969
Michael

4

Bunları ggplot'ınıza eklemeniz yeterlidir:

+ scale_x_continuous(expand = c(0, 0), limits = c(0, NA)) + 
  scale_y_continuous(expand = c(0, 0), limits = c(0, NA))

Misal

df <- data.frame(x = 1:5, y = 1:5)
p <- ggplot(df, aes(x, y)) + geom_point()
p <- p + expand_limits(x = 0, y = 0)
p # not what you are looking for


p + scale_x_continuous(expand = c(0, 0), limits = c(0,NA)) + 
  scale_y_continuous(expand = c(0, 0), limits = c(0, NA))

resim açıklamasını buraya girin

Son olarak, almak harika istemeden Grafiğinize kapalı verileri hariç dikkat . Örneğin, a position = 'dodge', bir çubuğun grafikten tamamen ayrılmasına neden olabilir (örneğin değeri sıfırsa ve ekseni sıfırla başlatırsanız), bu yüzden onu göremeyebilir ve orada olduğunu bile bilmeyebilirsiniz. Öncelikle verileri tam olarak çizmenizi, incelemenizi, daha sonra arsanın estetiğini geliştirmek için yukarıdaki ipucunu kullanmanızı öneririm.


bunu yeni bir ggplot temasına dönüştürmek de mümkün mü?
Bolle

@Bolle Emin değilim, ama aynı zamanda öğrenmek istiyorum, ayrı bir soru olarak sorabilir ve buraya bağlantı verebilirsiniz
stevec

Gelecekte
başvurmak
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.