ggplot2
kullanarak bir koordinasyon paketi üzerinde çalışıyorum. Şu anda, oklarla temsil edilen yükler ile geleneksel yollarda bipler yapıyorum. Aynı zamanda kalibre edilmiş eksenleri kullanmak ve yükleme eksenlerini başlangıç noktasından çizgilerle temsil etmek ve arsa bölgesi dışında yükleme etiketleri ile ilgilenmek isterim. Baz Ar bu R: ggplot2'de PCA biplot'a kalibre edilmiş eksenleri ekleyin
library(OpenRepGrid)
biplot2d(boeker)
uygulanan ama
ggplot2
çözüm arıyorum.
ggplot2
'da böyle bir şeye nasıl ulaşılacağını düşünen var mı? Değişken adlarını arsa bölgesi dışında eklemek,
like here sanırım, ama arsa bölgesi dışındaki çizgi parçaları nasıl çizilebilir?
Şu anda ne var yüklemeleri ben, başlangıç noktasından dış kene ve dış etiket satırları ekleyin nasıl olabilir ord$rotation
PC1 PC2 PC3 PC4
Sepal.Length 0.5210659 -0.37741762 0.7195664 0.2612863
Sepal.Width -0.2693474 -0.92329566 -0.2443818 -0.1235096
Petal.Length 0.5804131 -0.02449161 -0.1421264 -0.8014492
Petal.Width 0.5648565 -0.06694199 -0.6342727 0.5235971
içindedir
install.packages("devtools")
library(devtools)
install_github("fawda123/ggord")
library(ggord)
data(iris)
ord <- prcomp(iris[,1:4],scale=TRUE)
ggord(ord, iris$Species)
olduğunu eksen bölgesi (üst üste binen etiketler için yukarıda uygulanan serin bir titreme dahil)? sorusu bir cevap vermeden hala olsa, Someone else apparently asked a similar question before:
NB benim arsa öğelerinden bazılarını bazen sınırlayıcı kutunun
DÜZENLEME dışına çıkabileceğini beri kesilmesini, kapatmak istemiyoruz. Bu, R ortamında (böyle çirkin bir şekilde olsa da) böyle bir şey yapmanın, örn. ggplot2
yılında
plot(-1:1, -1:1, asp = 1, type = "n", xaxt = "n", yaxt = "n", xlab = "", ylab = "")
abline(a = 0, b = -0.75)
abline(a = 0, b = 0.25)
abline(a = 0, b = 2)
mtext("V1", side = 4, at = -0.75*par("usr")[2])
mtext("V2", side = 2, at = 0.25*par("usr")[1])
mtext("V3", side = 3, at = par("usr")[4]/2)
Minimal çalışılabilir örnek
library(ggplot2)
df <- data.frame(x = -1:1, y = -1:1)
dfLabs <- data.frame(x = c(1, -1, 1/2), y = c(-0.75, -0.25, 1), labels = paste0("V", 1:3))
p <- ggplot(data = df, aes(x = x, y = y)) + geom_blank() +
geom_abline(intercept = rep(0, 3), slope = c(-0.75, 0.25, 2)) +
theme_bw() + coord_cartesian(xlim = c(-1, 1), ylim = c(-1, 1)) +
theme(axis.title = element_blank(), axis.text = element_blank(), axis.ticks = element_blank(),
panel.grid = element_blank())
p + geom_text(data = dfLabs, mapping = aes(label = labels))
olurdu ama etiketlerle hiç şans gördüğünüz gibi, ben bir çözüm arıyorum o kırpmayı kapatmak için bir tane gerektirmez.
EDIT2: ilgili sorgunun bir kısmı, faktörün koordinat sistemini göstermek için, X ekseninin en üstünde ve Y ekseninin sağında, kırmızı renkte, özel kırılma/onay işaretleri ve etiketler ekleyebileceğim şekildedir. yüklemeleri? (Bu durumda, okları daha net yapmak için faktör puanlarına göre ölçeklendirirdim, tipik olarak bir ünite dairesiyle birleştirilir)
: Eğer üst ve sağ tarafta da etiketleri istiyorsanız de bakabilirsiniz? ve sonra özel eksenleri de kullanıyorsunuz? Bununla ilgili ipuçları için [http://www.cookbook-r.com/Graphs/Axes_ (ggplot2) /) 'a bakınız. Bununla birlikte, Hadley birbirinin üstünde birden fazla parselleri sevmiyor, bu yüzden kolayca istediğinizi yapamayabiliyorsunuz (Hadley'in cevabı burada [http://stackoverflow.com/questions/3099219/how-to-use -ggplot2-yap-arsa-ile-2-il-eksenli bir y-ekseni-on-the-sol ve diğer)). –
Evet, yönetebileceğimi düşündüğüm hatlar için (her ne kadar problemlerimi çözsem de sanırım çizgilerin alanın dışında çalışmasına izin verirseniz, benim durumumda kırpmayı devre dışı bırakmak istemiyorum). Etiketler için bunları belirli bir aralığa yerleştirmenizi önerirsiniz, ancak onlar için standart onay işaretlerini kullanın? (Tamamen istediğim gibi değil, ideal olarak eğik olması gerektiği gibi) Ve grafiğin her iki tarafında nasıl farklı aralıklar ve etiketler bulabilirim? –
Ve evet yeniden. Hadleys, farklı ölçekleri desteklemeyi istemediğine dair ısrar ediyor: Bu, beni bi lekeler için sorun haline getiriyor, çünkü hala Y ve X ekseninin sağında farklı bir renkte belirli aralıklar ve etiketler eklemeyi başaramıyorum - eğer Bunu nasıl yapacağımı bilirsin; İlgili bir problemin bitişi .... –