我想為以下資料繪制 PCA 圖:
Samples X Y condition
ABC0 -4902321.6 -1166806.4 abc0
A 1964182.5 -182574.88 abc
B 3230051.7 -169413.85 abc
C 4348087.3 -1412510.48 abc
EGH0 -4895769.1 -1279998.8 egh0
E -623590.7 24402.79 egh
G -396252.4 -515215.13 egh
H 151838.9 857007 egh
O -4168497.7 659968.17 o
P 4099128.1 -366815.68 prs
R 3180839.9 -37730.98 prs
S 3713295.7 -374523.83 prs
XYZ0 -4768219.8 -540444.8 xyz0
X 188488.4 559643.8 xyz
Y -599848.9 1506850.89 xyz
Z -521412.4 2438162.17 xyz
下面是我使用 ggplot 的代碼:
ggplot(data = pca.data, aes(x=X, y=Y,color = condition))
geom_point(size = 3)
geom_text(aes(label = Samples,size=4))
我想了解美學部分。如果我label=pca.data$Samples,size=4不在 aes 下使用,我的圖表看起來會有所不同。將標簽放在 geom_text 中的 aes 下的正確方法是什么?
uj5u.com熱心網友回復:
ggplot2使用主題aes將資料框中的值映射到單個資料點。當物件包含在對 的呼叫中時aes,程式包假定這些物件將在資料集的程序中發生變化,例如每個資料點具有不同值的 x 值或 y 值。當您在對 ggplot 之外的呼叫中包含內容時aes,該包假定該值在資料中是固定的,不需要映射到列。
在您的代碼中,您已告訴 ggplot 所有幾何圖形的相關列是 x、y 和顏色。然后告訴它對于點幾何體,您希望所有點的大小為 3(因為這未在aes呼叫中指定)。然后,您告訴它對于標簽 geom,您希望將文本標簽映射到 Samples 列(這是有道理的,做得好),并且您還希望將size映射到4列(這不存在)。這意味著您實際上沒有為文本標簽指定大小(因為您只給了它一個值,4)并要求它將該值映射到默認的大小比例。這就是為什么顯示“大小”的圖例 - 一個圖例告訴您如果值為 4,點將有多大。
我懷疑您想要的是將 size= 移到美學之外,因為您希望在整個資料中固定它,然后 ggplot 將知道您正在使用它作為指示如何制作點而不是而不是您要映射到資料的列的名稱。
ggplot(data = pca.data, aes(x=X, y=Y,color = condition))
geom_point(size = 3)
geom_text(aes(label = Samples), size=4)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/345870.html
