修复 ggplot2 散点图中的图例
我的文件中有下表,例如 Table.txt
:
ID UMAP1 UMAP2 colors tissue shape
BR1.RPM. -6.24624137750478 8.99732825037093 darkgrey Brain 21
BR2.RPM. -4.94022374995909 9.64415254298357 darkgrey Brain 21
BR3.RPM. -6.18653161030939 10.8053867159454 darkgrey Brain 21
BR4.RPM. -5.43379029546665 10.3241840540605 darkgrey Brain 21
BR5.RPM. -6.46826671610736 10.0162047226128 darkgrey Brain 21
CO1.RPM. 8.86122160028818 -10.8480078113176 forestgreen Colon 21
CO2.RPM. 7.80124379636093 -10.8247843040215 forestgreen Colon 21
CO3.RPM. 8.7898158134908 -11.9994744387119 forestgreen Colon 21
CO5.RPM. -0.211040103092488 -15.3140536298622 forestgreen Colon 21
DU1.RPM. 2.00335081362765 -13.4547195186791 olivedrab4 Duodenum 21
DU2.RPM. 1.06254721897261 -15.2328022664155 olivedrab4 Duodenum 21
DU5.RPM. 0.441952327756353 -11.6575129379758 olivedrab4 Duodenum 21
HE1.RPM. 3.99477353770135 10.6553694455463 hotpink3 Heart 21
HE2.RPM. 4.88118814766788 9.93852960962403 hotpink3 Heart 21
HE3.RPM. 5.21631629029322 10.6650139934156 hotpink3 Heart 21
HE4.RPM. 9.10821235021812 12.9856956614779 hotpink3 Heart 21
HE5.RPM. 5.78207690863004 11.0933139113898 hotpink3 Heart 21
IL1.RPM. 6.95565094553292 -12.5702089865116 palegreen3 Ileum 21
IL2.RPM. 1.01269742361358 -14.1035198369691 palegreen3 Ileum 21
IL3.RPM. -1.17035543321198 -13.6340301656585 palegreen3 Ileum 21
IL4.RPM. 8.40353989576425 -11.6513183019901 palegreen3 Ileum 21
JE1.RPM. 2.9910580757924 -14.4211713133721 darkseagreen Jejunum 21
JE2.RPM. 2.07079714594886 -15.3772976319669 darkseagreen Jejunum 21
JE3.RPM. -1.05329335978342 -14.5968398106159 darkseagreen Jejunum 21
JE4.RPM. 3.41624683267929 -13.4919035473171 darkseagreen Jejunum 21
JE5.RPM. 4.88425475465244 -13.1567652554822 darkseagreen Jejunum 21
KI1.RPM. -10.6374735982799 4.92145224474023 orange3 Kidney 21
KI2.RPM. -11.2833854978983 4.51937765581112 orange3 Kidney 21
KI3.RPM. -11.1470520844353 5.73545480553504 orange3 Kidney 21
KI4.RPM. -10.1513698150707 5.35434236921414 orange3 Kidney 21
KI5.RPM. -10.177160813581 6.20659526440371 orange3 Kidney 21
LI1.RPM. -5.70526388552766 2.73195871448176 sienna Liver 21
LI2.RPM. -6.17843878586395 1.90790108771143 sienna Liver 21
LI3.RPM. -7.0007572520014 2.65058984741689 sienna Liver 21
LI4.RPM. -5.88973722126037 3.76962066959112 sienna Liver 21
LI5.RPM. -6.61112275268653 3.28644045310891 sienna Liver 21
LU1.RPM. -4.75953988253826 6.29883048072252 mediumpurple Lung 21
LU2.RPM. -3.31384813480563 7.3267440711153 mediumpurple Lung 21
LU3.RPM. -5.9590148653142 6.68886573490531 mediumpurple Lung 21
LU4.RPM. -4.59224273960628 7.21105859067014 mediumpurple Lung 21
LU5.RPM. -5.47580231369125 7.59756752354278 mediumpurple Lung 21
PA1.RPM. -4.39428882425657 -1.00591794767983 dodgerblue Pancreas 21
PA2.RPM. -4.81692379647447 -0.378627400147651 dodgerblue Pancreas 21
PA3.RPM. -5.19468729366945 -1.42084838130265 dodgerblue Pancreas 21
PA5.RPM. -5.51778068445221 -0.836836569975335 dodgerblue Pancreas 21
PL1.RPM. 9.93008906133938 12.6156952554679 red3 Plasma 21
PL2.RPM. 9.54209137127792 13.7400750744851 red3 Plasma 21
PL3.RPM. 10.6344639198137 12.6886944573872 red3 Plasma 21
PL5.RPM. 10.3784631029018 13.7654629384684 red3 Plasma 21
SKI.RPM. -0.202516945089861 -14.2222474767147 pink2 Skin 21
SM1.RPM. 6.88138601444705 11.6623945678116 plum Skeletal muscle 21
SM2.RPM. 6.27891336047781 10.3000397477951 plum Skeletal muscle 21
SM3.RPM. 4.8344444544445 11.9513437182199 plum Skeletal muscle 21
TE1.RPM. -0.61587780139837 -12.5741675518115 goldenrod2 Testis 21
TE2.RPM. 7.49521993036915 -11.9671985613382 goldenrod2 Testis 21
TE3.RPM. 7.68201253927473 -13.3154305341953 goldenrod2 Testis 21
Blood 11.7943923259296 13.4515420442054 red3 Plasma 23
Muscle 2.85308339005237 11.1306582760691 plum Skeletal muscle 23
我想使用 R 中的 ggplot
代码从此表生成散点图,但我无法弄清楚如何修复图例以便正确显示。
我使用以下代码:
Table_UMAP = read.delim("/PATH/Table.txt", header=T, row.names=1)
Table_UMAP$colors <- factor(Table_UMAP$colors, levels=c("darkgrey", "forestgreen", "olivedrab4", "palegreen3", "darkseagreen", "red3", "hotpink3", "plum", "pink2",
"orange3", "sienna", "mediumpurple", "dodgerblue", "goldenrod2"))
Table_UMAP$tissue <- factor(Table_UMAP$tissue, levels=c("Brain", "Colon", "Duodenum", "Jejunum", "Ileum", "Plasma", "Heart", "Skeletal muscle", "Skin",
"Kidney", "Liver", "Lung", "Pancreas", "Testis"))
Table_UMAP$shape <- factor(Table_UMAP$shape, levels=c(21, 23))
library(ggplot2)
ggplot(Table_UMAP, aes(x=UMAP1, y=UMAP2, fill=tissue, color=colors)) +
geom_point(shape=shape, size=6) +
scale_fill_manual(labels = c("Brain", "Colon", "Duodenum", "Jejunum", "Ileum", "Plasma", "Heart", "Skeletal muscle", "Skin",
"Kidney", "Liver", "Lung", "Pancreas", "Testis"),
values = c("darkgrey", "forestgreen", "olivedrab4", "palegreen3", "darkseagreen", "red3", "hotpink3", "plum", "pink2",
"orange3", "sienna", "mediumpurple", "dodgerblue", "goldenrod2")) +
guides(fill = guide_legend(ncol=2)) +
ylim(c(-16,15)) + xlim(c(-12,12)) +
xlab("Component 1") + ylab("Component 2") +
theme_bw() +
theme(legend.position = c(0.22, 0.17), legend.title = element_blank(), legend.text = element_text(size=10),
legend.background = element_rect(fill = "white", color="black")) +
theme(axis.text.x = element_text(size=8),
axis.text.y = element_text(size=8),
axis.title.x =element_text(size=12, margin = margin(t = 10)),
axis.title.y =element_text(size=12, margin = margin(r = 10)),
plot.margin = margin(1, 1, 1, 1, "cm")) +
theme(panel.border = element_rect(linetype = "solid", size=1, color="black")) +
guides(fill = guide_legend(override.aes =list(shape = 21)))
此代码生成下图:
该图看起来如我所愿,但图例除外,图例缺少带有两列的附加行来显示形状差异,其中 21 是“狗”,23 是“其他”。
我怎样才能修复图例?是不是有什么东西我没有添加?
此致。
I have the following table in a file, say called Table.txt
:
ID UMAP1 UMAP2 colors tissue shape
BR1.RPM. -6.24624137750478 8.99732825037093 darkgrey Brain 21
BR2.RPM. -4.94022374995909 9.64415254298357 darkgrey Brain 21
BR3.RPM. -6.18653161030939 10.8053867159454 darkgrey Brain 21
BR4.RPM. -5.43379029546665 10.3241840540605 darkgrey Brain 21
BR5.RPM. -6.46826671610736 10.0162047226128 darkgrey Brain 21
CO1.RPM. 8.86122160028818 -10.8480078113176 forestgreen Colon 21
CO2.RPM. 7.80124379636093 -10.8247843040215 forestgreen Colon 21
CO3.RPM. 8.7898158134908 -11.9994744387119 forestgreen Colon 21
CO5.RPM. -0.211040103092488 -15.3140536298622 forestgreen Colon 21
DU1.RPM. 2.00335081362765 -13.4547195186791 olivedrab4 Duodenum 21
DU2.RPM. 1.06254721897261 -15.2328022664155 olivedrab4 Duodenum 21
DU5.RPM. 0.441952327756353 -11.6575129379758 olivedrab4 Duodenum 21
HE1.RPM. 3.99477353770135 10.6553694455463 hotpink3 Heart 21
HE2.RPM. 4.88118814766788 9.93852960962403 hotpink3 Heart 21
HE3.RPM. 5.21631629029322 10.6650139934156 hotpink3 Heart 21
HE4.RPM. 9.10821235021812 12.9856956614779 hotpink3 Heart 21
HE5.RPM. 5.78207690863004 11.0933139113898 hotpink3 Heart 21
IL1.RPM. 6.95565094553292 -12.5702089865116 palegreen3 Ileum 21
IL2.RPM. 1.01269742361358 -14.1035198369691 palegreen3 Ileum 21
IL3.RPM. -1.17035543321198 -13.6340301656585 palegreen3 Ileum 21
IL4.RPM. 8.40353989576425 -11.6513183019901 palegreen3 Ileum 21
JE1.RPM. 2.9910580757924 -14.4211713133721 darkseagreen Jejunum 21
JE2.RPM. 2.07079714594886 -15.3772976319669 darkseagreen Jejunum 21
JE3.RPM. -1.05329335978342 -14.5968398106159 darkseagreen Jejunum 21
JE4.RPM. 3.41624683267929 -13.4919035473171 darkseagreen Jejunum 21
JE5.RPM. 4.88425475465244 -13.1567652554822 darkseagreen Jejunum 21
KI1.RPM. -10.6374735982799 4.92145224474023 orange3 Kidney 21
KI2.RPM. -11.2833854978983 4.51937765581112 orange3 Kidney 21
KI3.RPM. -11.1470520844353 5.73545480553504 orange3 Kidney 21
KI4.RPM. -10.1513698150707 5.35434236921414 orange3 Kidney 21
KI5.RPM. -10.177160813581 6.20659526440371 orange3 Kidney 21
LI1.RPM. -5.70526388552766 2.73195871448176 sienna Liver 21
LI2.RPM. -6.17843878586395 1.90790108771143 sienna Liver 21
LI3.RPM. -7.0007572520014 2.65058984741689 sienna Liver 21
LI4.RPM. -5.88973722126037 3.76962066959112 sienna Liver 21
LI5.RPM. -6.61112275268653 3.28644045310891 sienna Liver 21
LU1.RPM. -4.75953988253826 6.29883048072252 mediumpurple Lung 21
LU2.RPM. -3.31384813480563 7.3267440711153 mediumpurple Lung 21
LU3.RPM. -5.9590148653142 6.68886573490531 mediumpurple Lung 21
LU4.RPM. -4.59224273960628 7.21105859067014 mediumpurple Lung 21
LU5.RPM. -5.47580231369125 7.59756752354278 mediumpurple Lung 21
PA1.RPM. -4.39428882425657 -1.00591794767983 dodgerblue Pancreas 21
PA2.RPM. -4.81692379647447 -0.378627400147651 dodgerblue Pancreas 21
PA3.RPM. -5.19468729366945 -1.42084838130265 dodgerblue Pancreas 21
PA5.RPM. -5.51778068445221 -0.836836569975335 dodgerblue Pancreas 21
PL1.RPM. 9.93008906133938 12.6156952554679 red3 Plasma 21
PL2.RPM. 9.54209137127792 13.7400750744851 red3 Plasma 21
PL3.RPM. 10.6344639198137 12.6886944573872 red3 Plasma 21
PL5.RPM. 10.3784631029018 13.7654629384684 red3 Plasma 21
SKI.RPM. -0.202516945089861 -14.2222474767147 pink2 Skin 21
SM1.RPM. 6.88138601444705 11.6623945678116 plum Skeletal muscle 21
SM2.RPM. 6.27891336047781 10.3000397477951 plum Skeletal muscle 21
SM3.RPM. 4.8344444544445 11.9513437182199 plum Skeletal muscle 21
TE1.RPM. -0.61587780139837 -12.5741675518115 goldenrod2 Testis 21
TE2.RPM. 7.49521993036915 -11.9671985613382 goldenrod2 Testis 21
TE3.RPM. 7.68201253927473 -13.3154305341953 goldenrod2 Testis 21
Blood 11.7943923259296 13.4515420442054 red3 Plasma 23
Muscle 2.85308339005237 11.1306582760691 plum Skeletal muscle 23
I want to generate a scatterplot from this table using ggplot
code in R, but I cannot figure it out how to fix the legend so that it is shown properly.
I am using the following code:
Table_UMAP = read.delim("/PATH/Table.txt", header=T, row.names=1)
Table_UMAP$colors <- factor(Table_UMAP$colors, levels=c("darkgrey", "forestgreen", "olivedrab4", "palegreen3", "darkseagreen", "red3", "hotpink3", "plum", "pink2",
"orange3", "sienna", "mediumpurple", "dodgerblue", "goldenrod2"))
Table_UMAP$tissue <- factor(Table_UMAP$tissue, levels=c("Brain", "Colon", "Duodenum", "Jejunum", "Ileum", "Plasma", "Heart", "Skeletal muscle", "Skin",
"Kidney", "Liver", "Lung", "Pancreas", "Testis"))
Table_UMAP$shape <- factor(Table_UMAP$shape, levels=c(21, 23))
library(ggplot2)
ggplot(Table_UMAP, aes(x=UMAP1, y=UMAP2, fill=tissue, color=colors)) +
geom_point(shape=shape, size=6) +
scale_fill_manual(labels = c("Brain", "Colon", "Duodenum", "Jejunum", "Ileum", "Plasma", "Heart", "Skeletal muscle", "Skin",
"Kidney", "Liver", "Lung", "Pancreas", "Testis"),
values = c("darkgrey", "forestgreen", "olivedrab4", "palegreen3", "darkseagreen", "red3", "hotpink3", "plum", "pink2",
"orange3", "sienna", "mediumpurple", "dodgerblue", "goldenrod2")) +
guides(fill = guide_legend(ncol=2)) +
ylim(c(-16,15)) + xlim(c(-12,12)) +
xlab("Component 1") + ylab("Component 2") +
theme_bw() +
theme(legend.position = c(0.22, 0.17), legend.title = element_blank(), legend.text = element_text(size=10),
legend.background = element_rect(fill = "white", color="black")) +
theme(axis.text.x = element_text(size=8),
axis.text.y = element_text(size=8),
axis.title.x =element_text(size=12, margin = margin(t = 10)),
axis.title.y =element_text(size=12, margin = margin(r = 10)),
plot.margin = margin(1, 1, 1, 1, "cm")) +
theme(panel.border = element_rect(linetype = "solid", size=1, color="black")) +
guides(fill = guide_legend(override.aes =list(shape = 21)))
This code generates the following figure:
The graph looks as I want, except for the legend, which is lacking to have an additional row with two columns showing the difference in shape, with 21 being "dog" and 23 being "others".
How could I fix the legend? Is there something missing there I am not adding?
Best regards.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不太明白你的问题,但我尝试重命名形状。
示例代码:
绘图:
I don't really understand your question but I tried to rename the shapes.
Sample code:
Plot: