图中 legend/figure 不匹配
mismatch between legend/figure in plot
首先,抱歉,我知道之前有人问过这个问题,但 none 我发现的解决方案似乎对我有用...R 会顽固地拒绝在中绘制正确的颜色我的传奇
我有以下数据
V11.y PC1 PC2 V6.y V7.y V8.y V9.y V10.y
1 Abditibacterium -7.528935e+14 -3.092266e+14 Bacteria Abditibacteriota Abditibacteria Abditibacteriales Abitibacteriaceae
2 Abidjanvirus -7.557715e+14 -3.109203e+13 Viruses unclassified unclassified Caudovirales Siphoviridae
3 Abiotrophia -7.491173e+14 -3.047456e+14 Bacteria Firmicutes Bacilli Lactobacillales Aerococcaceae
4 Abrus -7.557715e+14 -3.109203e+14 Eukaryota Streptophyta Magnoliopsida Fabales Fabaceae
5 Abscondita -7.537974e+14 -3.098546e+14 Eukaryota Arthropoda Insecta Coleoptera Lampyridae
6 Absicoccus -5.600170e+13 -1.933629e+14 Bacteria Firmicutes Erysipelotrichia Erysipelotrichales Erysipelotrichaceae
7 Absidia -7.555506e+14 -3.105756e+14 Eukaryota Mucoromycota Mucoromycetes Mucorales Cunninghamellaceae
8 Absiella -2.072363e+14 7.305995e+14 Bacteria Firmicutes Erysipelotrichia Erysipelotrichales Erysipelotrichaceae
9 Abyssibacter -7.543130e+14 -3.103792e+14 Bacteria Proteobacteria Gammaproteobacteria Salinisphaerales Salinisphaeraceae
10 Abyssicoccus -7.511899e+14 -3.069448e+14 Bacteria Firmicutes Bacilli Bacillales Staphylococcaceae
11 Abyssisolibacter -7.067138e+14 -2.700463e+14 Bacteria Firmicutes Clostridia Clostridiales Clostridiaceae
12 Acadevirus -7.557715e+14 -3.109203e+13 Viruses Uroviricota Caudoviricetes Caudovirales Autographiviridae
13 Acanthamoeba -7.534538e+14 -3.101502e+14 Eukaryota Discosea unclassified Longamoebia Acanthamoebidae
14 Acanthaster -7.557668e+13 -3.109202e+14 Eukaryota Echinodermata Asteroidea Valvatida Acanthasteridae
这只是 4600 行中的前 14 行
我正在尝试使用 PC1 和 PC2 坐标绘制 V11.y 并通过使用 V6.y 或 V7.y 甚至 [=37= 为它们着色].
这是我一直在尝试的:
plot(sitesplus$PC1, sitesplus$PC2, type="n")
sitesplus$V6.y=as.factor(sitesplus$V6.y)
text(sitesplus$PC1, sitesplus$PC2, labels = sitesplus$V11.y, col=c(sitesplus$V6.y))
legend("topleft",
legend=sort(unique(sitesplus$V6.y)),
col=c(sitesplus$V6.y),
pch=19,
text.font=c(1),
cex=1,
bty="n")
我看到“细菌”是黑色的,“病毒”是绿色的,“真核生物”是红色的。但传说完全不同!
我也试过:
legend("topleft",
legend=levels(sitesplus$V6.y),
col=c(sitesplus$V6.y),
pch=19,
text.font=c(1),
cex=1,
bty="n")
尽管在上述情况下我知道“级别”改变了顺序,但我无法找到一个简单的解决方案来完成这项工作!!!
顺便说一句,我无法指定 4 种颜色,因为这只是一个示例,在某些时候我将要绘制一百个不同的级别,因此提前指定颜色对我不起作用。
非常感谢任何帮助,谢谢。
当您调用 text
时,PC1
、PC2
和 V6.y
(col=
的参数)的长度都相同。在您对 legend
的调用中,您仍然为 col
包含相同长度的 V6.y
,即使它确实需要长度 3(在本例中),每个颜色都需要一种(唯一)颜色变量中的 levels
.
它显示了它做了什么,因为图例的文本只包含 3 个对象,所以它从 factor
中获取前三个整数。在这个示例数据中,它是c("Bacteria","Viruses","Bacteria")
,或者c(1,3,1)
(黑绿黑)。
试试这个,
plot(sitesplus$PC1, sitesplus$PC2, type="n")
text(sitesplus$PC1, sitesplus$PC2, labels = sitesplus$V11.y, col=c(sitesplus$V6.y))
legend("topleft",
legend=levels(sitesplus$V6.y),
col=seq_along(levels(sitesplus$V6.y)),
pch=19,
text.font=c(1),
cex=1,
bty="n")
首先,抱歉,我知道之前有人问过这个问题,但 none 我发现的解决方案似乎对我有用...R 会顽固地拒绝在中绘制正确的颜色我的传奇
我有以下数据
V11.y PC1 PC2 V6.y V7.y V8.y V9.y V10.y
1 Abditibacterium -7.528935e+14 -3.092266e+14 Bacteria Abditibacteriota Abditibacteria Abditibacteriales Abitibacteriaceae
2 Abidjanvirus -7.557715e+14 -3.109203e+13 Viruses unclassified unclassified Caudovirales Siphoviridae
3 Abiotrophia -7.491173e+14 -3.047456e+14 Bacteria Firmicutes Bacilli Lactobacillales Aerococcaceae
4 Abrus -7.557715e+14 -3.109203e+14 Eukaryota Streptophyta Magnoliopsida Fabales Fabaceae
5 Abscondita -7.537974e+14 -3.098546e+14 Eukaryota Arthropoda Insecta Coleoptera Lampyridae
6 Absicoccus -5.600170e+13 -1.933629e+14 Bacteria Firmicutes Erysipelotrichia Erysipelotrichales Erysipelotrichaceae
7 Absidia -7.555506e+14 -3.105756e+14 Eukaryota Mucoromycota Mucoromycetes Mucorales Cunninghamellaceae
8 Absiella -2.072363e+14 7.305995e+14 Bacteria Firmicutes Erysipelotrichia Erysipelotrichales Erysipelotrichaceae
9 Abyssibacter -7.543130e+14 -3.103792e+14 Bacteria Proteobacteria Gammaproteobacteria Salinisphaerales Salinisphaeraceae
10 Abyssicoccus -7.511899e+14 -3.069448e+14 Bacteria Firmicutes Bacilli Bacillales Staphylococcaceae
11 Abyssisolibacter -7.067138e+14 -2.700463e+14 Bacteria Firmicutes Clostridia Clostridiales Clostridiaceae
12 Acadevirus -7.557715e+14 -3.109203e+13 Viruses Uroviricota Caudoviricetes Caudovirales Autographiviridae
13 Acanthamoeba -7.534538e+14 -3.101502e+14 Eukaryota Discosea unclassified Longamoebia Acanthamoebidae
14 Acanthaster -7.557668e+13 -3.109202e+14 Eukaryota Echinodermata Asteroidea Valvatida Acanthasteridae
这只是 4600 行中的前 14 行
我正在尝试使用 PC1 和 PC2 坐标绘制 V11.y 并通过使用 V6.y 或 V7.y 甚至 [=37= 为它们着色].
这是我一直在尝试的:
plot(sitesplus$PC1, sitesplus$PC2, type="n")
sitesplus$V6.y=as.factor(sitesplus$V6.y)
text(sitesplus$PC1, sitesplus$PC2, labels = sitesplus$V11.y, col=c(sitesplus$V6.y))
legend("topleft",
legend=sort(unique(sitesplus$V6.y)),
col=c(sitesplus$V6.y),
pch=19,
text.font=c(1),
cex=1,
bty="n")
我看到“细菌”是黑色的,“病毒”是绿色的,“真核生物”是红色的。但传说完全不同!
我也试过:
legend("topleft",
legend=levels(sitesplus$V6.y),
col=c(sitesplus$V6.y),
pch=19,
text.font=c(1),
cex=1,
bty="n")
尽管在上述情况下我知道“级别”改变了顺序,但我无法找到一个简单的解决方案来完成这项工作!!!
顺便说一句,我无法指定 4 种颜色,因为这只是一个示例,在某些时候我将要绘制一百个不同的级别,因此提前指定颜色对我不起作用。
非常感谢任何帮助,谢谢。
当您调用 text
时,PC1
、PC2
和 V6.y
(col=
的参数)的长度都相同。在您对 legend
的调用中,您仍然为 col
包含相同长度的 V6.y
,即使它确实需要长度 3(在本例中),每个颜色都需要一种(唯一)颜色变量中的 levels
.
它显示了它做了什么,因为图例的文本只包含 3 个对象,所以它从 factor
中获取前三个整数。在这个示例数据中,它是c("Bacteria","Viruses","Bacteria")
,或者c(1,3,1)
(黑绿黑)。
试试这个,
plot(sitesplus$PC1, sitesplus$PC2, type="n")
text(sitesplus$PC1, sitesplus$PC2, labels = sitesplus$V11.y, col=c(sitesplus$V6.y))
legend("topleft",
legend=levels(sitesplus$V6.y),
col=seq_along(levels(sitesplus$V6.y)),
pch=19,
text.font=c(1),
cex=1,
bty="n")