autoplot - 如何调整加载标签?
autoplot - How to adjust loading labels?
我希望能够调整加载标签的位置,使它们不会落在箭头上方。但是,我不知道需要在哪里进行调整。 geom_text
可用于调整站点位置的位置,但我找不到向量存储在 str(g)
中的位置。
library(ggplot2)
library(ggfortify)
df <- data.frame(replicate(10,sample(-10:10,10,rep=TRUE)))
names(df) <- c('up','down','left','right','circle','square','triangle','x','r1','l1')
rownames(df) <- paste('Dummy Site', seq(0,9,1))
g <- autoplot(prcomp(df[,-11], scale=TRUE), data=df,
loadings.label=TRUE, loadings=TRUE,
loadings.label.size=8, loadings.colour='blue',
label.size=5) +
geom_text(vjust=-1, label=rownames(df)) +
theme(plot.background=element_blank(),
panel.background=element_rect(fill='transparent',color='black',size=1),
legend.text=element_text(hjust=1),
legend.key=element_blank())
g
我查看了 ggplot2::theme
并检查了 autoplot
的帮助文档,但找不到任何关于调整标签位置的内容。如果可以根据箭头的矢量进行调整,则加分,但可以接受静态调整。
目前,剧情是这样的:
您可以通过layer_data(g, 2)
获取坐标。但是 autoplot(prcomp.obj)
将其他参数传递给 ggbiplot()
,因此您可以使用 ggbiplot()
的参数更改 label
和 loadings.label
的位置,例如 loadings.label.hjust
(请参阅?ggbiplot
).
示例代码:
arrow_ends <- layer_data(g, 2)[,c(2,4)]
autoplot(prcomp(df[,-11], scale=TRUE), data=df,
loadings.label=TRUE, loadings=TRUE,
loadings.label.size=8, loadings.colour='blue',
label.size=5, loadings.label.vjust = 1.2) + # change loadings.label position
geom_point(data = arrow_ends, aes(xend, yend), size = 3) + # the coordinates from layer_data(...)
geom_text(vjust=-1, label=rownames(df)) +
theme(plot.background=element_blank(),
panel.background=element_rect(fill='transparent',color='black',size=1),
legend.text=element_text(hjust=1),
legend.key=element_blank())
我希望能够调整加载标签的位置,使它们不会落在箭头上方。但是,我不知道需要在哪里进行调整。 geom_text
可用于调整站点位置的位置,但我找不到向量存储在 str(g)
中的位置。
library(ggplot2)
library(ggfortify)
df <- data.frame(replicate(10,sample(-10:10,10,rep=TRUE)))
names(df) <- c('up','down','left','right','circle','square','triangle','x','r1','l1')
rownames(df) <- paste('Dummy Site', seq(0,9,1))
g <- autoplot(prcomp(df[,-11], scale=TRUE), data=df,
loadings.label=TRUE, loadings=TRUE,
loadings.label.size=8, loadings.colour='blue',
label.size=5) +
geom_text(vjust=-1, label=rownames(df)) +
theme(plot.background=element_blank(),
panel.background=element_rect(fill='transparent',color='black',size=1),
legend.text=element_text(hjust=1),
legend.key=element_blank())
g
我查看了 ggplot2::theme
并检查了 autoplot
的帮助文档,但找不到任何关于调整标签位置的内容。如果可以根据箭头的矢量进行调整,则加分,但可以接受静态调整。
目前,剧情是这样的:
您可以通过layer_data(g, 2)
获取坐标。但是 autoplot(prcomp.obj)
将其他参数传递给 ggbiplot()
,因此您可以使用 ggbiplot()
的参数更改 label
和 loadings.label
的位置,例如 loadings.label.hjust
(请参阅?ggbiplot
).
arrow_ends <- layer_data(g, 2)[,c(2,4)]
autoplot(prcomp(df[,-11], scale=TRUE), data=df,
loadings.label=TRUE, loadings=TRUE,
loadings.label.size=8, loadings.colour='blue',
label.size=5, loadings.label.vjust = 1.2) + # change loadings.label position
geom_point(data = arrow_ends, aes(xend, yend), size = 3) + # the coordinates from layer_data(...)
geom_text(vjust=-1, label=rownames(df)) +
theme(plot.background=element_blank(),
panel.background=element_rect(fill='transparent',color='black',size=1),
legend.text=element_text(hjust=1),
legend.key=element_blank())