ggplot'ta grconvertX/grconvertX'in nasıl kullanılacağını anlamaya çalışıyorum. Benim nihai hedefim ggplot2 şekline (ve muhtemelen kafes) grid.text
ve grid.lines
ile kullanıcı koordinatlarından aygıt koordinatlarına geçerek ek açıklama eklemektir. Biliyorum kurtlarla yapılabilir ama daha kolay bir yol olup olmadığını merak ediyorum. Aşağıdaki kod, kullanıcı koordinatlarından ndc koordinatlarına değerleri aktarmamı ve grid.text
ile arsaya açıklama eklemek için bu değerleri kullanmamı sağlar. Mixing X and Y coordinate systems: ggplot2'de grconvertX/grconvertY kullanımı
graphics.off() # close graphics windows
library(grid)
library(gridBase)
test= data.frame(
x = c(1,2,3),
y = c(12,10,3),
n = c(75,76,73)
)
par(mar = c(13,5,2,3))
plot(test$y ~ test$x,type="b", ann=F)
for (i in 1:nrow(test))
{
X=grconvertX(i , from="user", to="ndc")
grid.text(x=X, y =0.2, label=paste("GRID.text at\nuser.x=", i, "\n", "ndc.x=", (signif(X, 5)) ))
grid.lines(x=c(X, X), y = c(0.28, 0.33))
}
#add some code to save as PDF ...
kod önceki mesajların birinden çözümü dayanmaktadır. Orijinal çizimden x koordinatlarının ndc'ye nasıl dönüştürüldüğünü görebilirsiniz. Bu yaklaşımın avantajı, Cihaz I kolayca
ggplot2 (ve muhtemelen de
kafes) aynı yapabileceği kabul Y
için koordinatları kullanabilmesidir.
library(ggplot2)
graphics.off() # close graphics windows
qplot(x=x, y=y, data=test)+geom_line()+ opts(plot.margin = unit(c(1,3,8,1), "lines"))
for (i in 1:nrow(test))
{
X=grconvertX(i , from="user", to="ndc")
grid.text(x=X, y =0.2, label=paste("GRID.text at\nuser.x=", i, "\n", "ndc.x=", (signif(X, 5)) ))
grid.lines(x=c(X, X), y = c(0.28, 0.33))
}
#add some code to save as PDF...
Ancak, düzgün çalışmıyor. Koordinatlar biraz kapalı gibi görünüyor. Dikey çizgiler ve metin, arsadaki onay etiketlerine uymuyor. Birisi bana nasıl düzeltileceğini söyleyebilir mi? Şimdiden çok teşekkürler. ggplot2 ızgara grafik kullanır ise
Sadece kafa kafaya, sorularımdaki biçimlendirmeyi "standart" kod vurgulama için daha iyi uyacak şekilde biçimlendirmekteyim.Ayrıca, bir kullanıcının çalışma alanından tüm nesneleri kaldırmanın, kullanıcıların hızlı bir şekilde kopyalayıp yapıştırma olasılığının yüksek olduğu kodlarda yer almaması en iyisidir. Temiz bir R oturumunda olduklarından emin olmak için okuyucuya bırakın. – joran
Teşekkürler! Temiz bir oturumda çalışmanın daha kolay olacağını düşündüm. Bu kodu artık eklemiyorum. –