首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ggplot2散射图中的Fix图例

ggplot2散射图中的Fix图例
EN

Stack Overflow用户
提问于 2022-03-21 15:04:51
回答 1查看 92关注 0票数 0

我在一个名为Table.txt的文件中有下表

代码语言:javascript
复制
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代码从这个表中生成一个散点图,但是我想不出如何修复图例,以便正确地显示它。

我使用以下代码:

代码语言:javascript
复制
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列是“其他”。

我怎么才能修正这个传说?有什么我没有补充的东西吗?

诚挚的问候。

EN

回答 1

Stack Overflow用户

发布于 2022-03-22 15:49:29

我不太明白你的问题,但我试着重新命名形状。

样本代码:

代码语言:javascript
复制
library(plyr)
library(ggplot2)

     
#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))

Table_UMAP$shape <-revalue(Table_UMAP$shape, c("21"="Dog", "23"="Other"))

Table_UMAP <-Table_UMAP [-which(is.na(Table_UMAP$shape)),] # remove NA


ggplot(Table_UMAP, aes(x=UMAP1, y=UMAP2), color=colors, shape=shape) + 
  geom_point(aes(shape=shape, color=tissue), size=6) + 
  guides(shape= guide_legend(ncol=2)) +
  scale_color_manual(
    values = c("Brain" = "darkgrey",
               "Colon"="forestgreen", 
               "Duodenum"="olivedrab4", 
               "Jejunum"="palegreen3", 
               "Ileum"="darkseagreen",
               "Plasma"="red3", 
               "Heart"="hotpink3", 
               "Skeletal muscle"="plum", 
               "Skin"="pink2",
               "Kidney"="orange3",
               "Liver"="sienna", 
               "Lung"="mediumpurple", 
               "Pancreas"="dodgerblue", 
               "Testis"="goldenrod2"))+
  guides(color = 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.00, 0.0),
        legend.justification=c(0,0),
        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"))

情节:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71559749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档