我正在从数据框中创建一个位图(任何图形)。问题是在创建它时与标签重叠:
我想知道如何避免这种情况以及我可以使用哪些替代方案。这是我用来执行位图的脚本:
从一个数组中,我执行了以下代码:
SNP_3.a.region_SS.prca <- prcomp(m_SNP_3.a.region_SS_m, center = TRUE)
Biplot_SNP_3.a.region_SS<-biplot(SNP_3.a.region_SS.prca,choices=1:2,scale=1,main="CMV3_3.a.region_SS",pc.biplot=FALSE)
我还想知道除了使用 Adobe Illustrator 来划分那些通过圆圈更接近的点之外是否还有其他选择。
非常感谢您。
有了
biplot()
一些选项,无疑会改善图表的阅读效果,尽管由于其性质,很难确保没有重叠。让我们看一下这个例子:我们可以提出一些改进:
col
我们可以设置两类标签的颜色,我们可以突出箭头的标签,使其他的为浅灰色cex
也可以修改字体大小expand
,它设置箭头的扩展因子,我们可以通过它以某种方式分隔标签,但有必要使用xlim
和调整限制ylim
例子:
我不认为 biplot 可以改进更多,也许你应该寻找一个替代解决方案,有几个包,我认为我推荐的一个是
factoextra
:特别是对于您要查找的内容,该参数非常有用
repel
,启用它时,标签与每个点分开,并绘制一条线来连接两个元素。图表中元素重叠或重叠问题的一些解决方案。
增加图表的大小。
过度绘图是一个相对问题。在这种情况下,这意味着它取决于您制作的图表的大小。如果我们生成它的尺寸太小,或者如果边距、图例、标题等,即使是“最干净”的图表也会出现重叠问题。它们限制了图形本身的区域。所以有两种选择:
增加图形的绝对大小。如何执行此操作将取决于生成图表的位置。如果要在 Rstudio 图形区域查看,可以放大并全屏查看。如果是用于在文档上打印,
rmarkdown
则可以在代码块的配置行中指定以英寸为单位的大小,该代码块分别生成高度和宽度的fig.height=
图形fig.width=
。“清理”图表中不必要的元素或缩小边距。前者更容易使用
ggplot
,后者使用 R 的基本图形。使用重新定位标签的函数进行绘图
如果无法增加图表的大小,您可以针对您的特定情况
fviz_pca
使用库函数factoextra
。该函数从结果对象中生成您正在寻找的图形类型,prcomp
并具有用于避免重叠标签的repel= TRUE
参数ggrepel
。结果并不总是最好的,有时图表看起来很难看或难以阅读,但值得一试。例子:
由于问题中不包含任何数据,因此我将使用
USAarrests
,它出现在prcomp
我们可以调用的示例中example(prcomp)
。结果与
biplot
结果与
fviz_pca
第二张图要好得多,因为它具有
repel
重新定位标签的功能,也因为基于它ggplot()
具有良好的自动边距管理。您将
help(fviz_pca))
找到一些自定义图形的选项。在此链接中,有使用整个库的指南(不幸的是英文版),该库有很好的文档记录。您将看到该选项addEllipses = TRUE
可用于解决您的第二个问题。