【发布时间】:2023-01-07 03:45:58
【问题描述】:
多年来我一直在摸不着头脑,我终生无法弄清楚自己做错了什么。
我知道这与其他几个问题非常相似,最著名的是:How to plot specific colors and shapes for ggplot2 scatter plot? 但问题是,正是按照该问题的答案,我才找到了当前的问题,但不知道出了什么问题。
所以,这是我的数据:
comb_frame <- structure(list(decode_beta = c("0.00279501", "-0.0098421", "-0.025254",
"0.00172701", "0.00531102", "0.000274217", "0.00594772859800487",
"0.000376995", "0.00082946", "0.00357124647463984", "-0.0018971",
"0.0083565", "0.00356544", "-0.000609096", "0.00167749", "-0.0150423",
"-0.022448", "-0.00242648", "-0.00190033", "-0.022692", "0.00536424",
"-0.00100278", "0.0073661", "0.00092082", "-0.00263694", "0.0076137",
"0.0072423", "-0.00081708", "-0.01708", "0.00211079", "0.0011098",
"-0.000107087", "0.0022284", "0.00068709", "-0.00562316159145804",
"0.00112658", "0.00207365", "-0.000287835", "-0.00286597", "-0.027999",
"0.00503866", "0.00305786", "-0.001238", "0.0071804", "-0.0084529",
"0.00556481", "-1.9459e-05", "0.000191271", "-0.017995", "0.002799",
"-0.024888", "-0.008418", "0.02257", "-0.008174", "-0.019886",
"-0.00492105", "0.00362115", "0.00392446", "0.00281645"), scallop_beta = c(-0.01011621546,
0.0047657725, -0.02134944, -0.0016247829, 0.0044858415, -0.0015072187,
-0.00782423635, -0.0013813875, -0.001077867, 0.02124057075, 0.0019690364,
-0.004913727, 0.00098559246, 0.00302699872, -0.000395703, -0.02609645934,
-0.02794527222, 0.000946532, 0.000786876, -0.00685633312, -0.004700096,
0.00198448425, 0.00497280424, -0.00480984096, -0.00251334656,
8.4434e-05, 0.00185996837, 0.001175848, -0.01947989552, -0.001227005,
-0.0038851968, -0.00650484, -0.00262378296, 0.003949936, 0.0113079946,
-0.00216854672, -0.000730496, 0.001289556, 0.004527388, -0.01095271456,
0.00580293467, 0.00515290737, 0.000929589, -0.00292289712, 0.0053226888,
-3.969984e-05, -0.0115784, 0.0030260514, -0.00695347872, 0.0092864585,
-0.01863179184, 7.274624e-05, 0.00208976, 0.00042348704, -0.00965808,
-0.0048684602, 0.0045743228, 0.00489489, -0.002105883), significance = c("SCAL SIG",
"NON SIG", "NON SIG", "NON SIG", "DEC SIG", "NON SIG", "NON SIG",
"NON SIG", "NON SIG", "SCAL SIG", "NON SIG", "DEC SIG", "NON SIG",
"NON SIG", "NON SIG", "NON SIG", "NON SIG", "NON SIG", "NON SIG",
"NON SIG", "NON SIG", "NON SIG", "DEC SIG", "NON SIG", "NON SIG",
"DEC SIG", "NON SIG", "NON SIG", "NON SIG", "NON SIG", "NON SIG",
"SCAL SIG", "NON SIG", "NON SIG", "NON SIG", "NON SIG", "NON SIG",
"NON SIG", "SCAL SIG", "NON SIG", "DEC SIG", "SCAL SIG", "NON SIG",
"DEC SIG", "NON SIG", "DEC SIG", "NON SIG", "NON SIG", "NON SIG",
"NON SIG", "NON SIG", "NON SIG", "NON SIG", "NON SIG", "NON SIG",
"NON SIG", "SCAL SIG", "SCAL SIG", "NON SIG")), row.names = c(NA,
-59L), class = "data.frame")
我正在尝试创建两组 beta 的散点图,然后根据它们在两个单独的数据集中(由第三列定义)各自的重要性为它们着色。
根据我分享的问题,我这样做:
comb_frame$significance = factor(comb_frame$significance, levels = (unique(comb_frame$significance))) ### First I changed significance into a factor
frame_colours = ifelse(comb_frame$significance == "DEC SIG", "#FF0000", ifelse(comb_frame$significance == "SCAL SIG", "#00A08A", "Gray")) ### I make a vector of the three colours I want
### Then I plot my graph as follows:
ggplot(comb_frame, aes(x = decode_beta, y = scallop_beta)) +
theme_classic() +
labs(x = "DeCODE beta (adjusted)",
y = "SCALLOP beta (adjusted)",
title = paste0("Proteomics PheWAS correlations ", curr_path)) +
geom_abline(intercept = 0) +
geom_smooth(method = "lm", se = FALSE, colour = "red") +
geom_point(aes(colour = significance)) +
scale_color_manual(breaks = unique(comb_frame$significance), values = frame_colours)
这几乎可以工作并产生以下内容:
但正如您所见,它只是为一些点着色。它正确地为这些点着色,但由于某种原因它没有添加第三种颜色,我无法弄清楚出了什么问题。
我也尝试过使用重要性列而不是具有相同结果的因素来执行此操作。
【问题讨论】:
标签: r ggplot2 geom-point