更改 ggplots 中特定方面的比例以避免混乱

change scales of specific facets in ggplots to avoid clutter

我想手动更改 ggplot 中某些特定方面的比例。我尝试设置比例和 space = "free" 但我没有得到想要的行为。我还想让图表看起来更大,我意识到当我使用“主题(aspect.ratio = 5/5)”时它缩小了情节

我想手动更改 ggplot 中某些特定方面的比例。我尝试设置比例和 space = "free" 但我没有得到想要的行为。我还想让图表看起来更大,我意识到当我使用“主题(aspect.ratio = 5/5)”时它缩小了情节

dataLong <- structure(list(Group = c("Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", 
"Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_1", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", "Grp_2", 
"Grp_2"), Index = c("1", "2", "3", "1", "2", "3", "1", "2", "3", 
"1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", 
"2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", 
"3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", 
"1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", 
"2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", 
"3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", 
"1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", 
"2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", 
"3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", 
"1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", 
"2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", 
"3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", 
"1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", 
"2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", 
"3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", 
"1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", 
"2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", 
"3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", 
"1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", 
"2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", 
"3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", 
"1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", 
"2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", 
"3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", 
"1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", 
"2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", 
"3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", 
"1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", 
"2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", 
"3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", 
"1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", 
"2", "3", "1", "2", "3", "1", "2", "3", "1", "2", "3", "1", "2", 
"3", "1", "2", "3", "1", "2", "3"), Eye = c(0.1625, 0.152, 0.329, 
0.6145, 1.401, 2.3125, 0.1335, 1.111, 1.294, 0.083, 2.372, 2.554, 
0.1165, 0.2005, 0.3085, 0.2585, 0.4805, 0.7555, 0.2085, 1.663, 
1.913, 0.549, 1.97, 2.336, 0.142, 0.719, 0.869, 0.1585, 1.3735, 
1.6545, 0.1835, 1.283, 1.45, 0.2585, 0.795, 1.2595, 0.1835, 0.1625, 
0.3625, 0.334, 1.406, 1.811, 0.1505, 1.0035, 1.304, 0.166, 2.323, 
2.656, 0.1085, 0.167, 0.292, 0.25, 0.2725, 0.5305, 0.1505, 1.453, 
1.537, 0.452, 1.265, 1.947, 0.117, 0.343, 0.653, 0.183, 1.055, 
1.424, 0.1745, 1.199, 1.3655, 0.3335, 0.3825, 0.619, 0.158, 0.923, 
1.08, 0.3, 2.033, 2.337, 0.071, 0.9435, 1.0105, 0.133, 1.76, 
1.947, 0.15, 0.2335, 0.5005, 0.3085, 0.473, 0.7905, 0.133, 2.543, 
2.626, 0.3415, 2.2415, 2.331, 0.125, 0.7535, 0.862, 0.25, 1.691, 
2.008, 0.158, 1.437, 1.554, 0.3965, 1.2865, 1.7715, 0.158, 0.314, 
0.453, 0.167, 0.566, 0.666, 0.1, 0.2665, 0.422, 0.117, 0.166, 
0.284, 0.1745, 0.5945, 0.753, 0.1335, 0.514, 0.6645, 0.134, 0.333, 
0.467, 0.25, 0.498, 0.767, 0.1335, 3.879, 4.0125, 0.125, 0.309, 
0.4515, 0.1, 0.344, 0.439, 0.175, 2.2515, 2.6085, 0.1835, 0.4295, 
0.596, 0.133, 0.366, 0.5, 0.1, 0.333, 0.433, 0.125, 0.167, 0.3085, 
0.167, 0.167, 0.35, 0.184, 0.333, 0.55, 0.1415, 0.333, 0.4665, 
0.4805, 0.346, 0.785, 0.1335, 3.161, 3.2945, 0.1085, 0.3, 0.41, 
0.133, 0.434, 0.584, 0.133, 0.383, 0.516, 0.167, 0.4, 0.533, 
0.1335, 1.035, 1.1575, 0.116, 0.334, 0.4665, 0.134, 0.15, 0.3, 
0.1505, 0.6835, 0.842, 0.1415, 1.417, 1.575, 0.092, 1.99, 2.3285, 
0.367, 0.646, 1.03, 0.166, 4.727, 5.045, 0.1, 0.89, 0.9645, 0.167, 
0.804, 0.999, 0.15, 1.695, 1.845, 0.142, 0.254, 0.408, 0.2, 0.445, 
0.6785, 0.1505, 0.3665, 0.5, 0.168, 1.353, 1.588, 0.116, 0.1665, 
0.2665, 0.2, 0.2745, 0.425, 0.3585, 0.5535, 1.24, 0.1835, 0.2985, 
0.5605, 0.1165, 0.166, 0.2855, 0.1585, 1.127, 1.2575, 0.175, 
1.238, 1.356, 0.258, 1.068, 1.4355, 0.154, 0.1805, 0.31, 0.167, 
0.8915, 1.075, 0.167, 0.635, 0.901, 0.136, 1.631, 1.763, 0.1, 
0.2165, 0.3, 0.2085, 0.252, 0.46, 0.3445, 0.1825, 1.11, 0.192, 
0.304, 0.475, 0.116, 0.1775, 0.3, 0.116, 1.005, 1.1245, 0.166, 
1.207, 1.374, 0.2, 0.6085, 0.9005, 0.129, 0.1765, 0.3015, 0.2, 
0.661, 0.911, 0.1165, 0.4775, 0.7605, 0.1165, 1.431, 1.584, 0.117, 
0.1835, 0.3085, 0.242, 0.3365, 0.573, 0.327, 1.236, 1.515, 0.192, 
0.324, 0.541, 0.1, 0.1585, 0.2505, 0.167, 1.425, 1.68, 0.154, 
1.6555, 1.8555, 0.242, 0.646, 1.165, 0.125, 0.2, 0.341, 0.133, 
0.596, 0.7125, 0.1495, 0.267, 0.4505, 0.1165, 0.175, 0.297, 0.117, 
0.272, 0.422, 0.117, 0.308, 0.3835, 0.0915, 0.167, 0.267, 0.1585, 
0.167, 0.334, 0.117, 3.0555, 3.164, 0.108, 0.3, 0.384, 0.117, 
0.1745, 0.342, 0.1165, 0.3005, 0.4165, 0.1715, 0.167, 0.35, 0.167, 
0.361, 0.494, 0.133, 0.267, 0.466, 0.116, 0.183, 0.275, 0.133, 
0.246, 0.379, 0.133, 0.166, 0.317, 0.083, 0.1925, 0.275, 0.1865, 
0.168, 0.45, 0.133, 2.668, 2.818, 0.1165, 0.3315, 0.4465, 0.117, 
0.15, 0.3, 0.116, 0.167, 0.3, 0.1, 0.2835, 0.3795, 0.134, 0.367, 
0.533, 0.1165, 0.5105, 0.6145, 0.117, 0.192, 0.276, 0.134, 0.15, 
0.3825, 0.125, 0.4185, 0.5685, 0.083, 0.25, 0.35, 0.225, 0.215, 
0.3985, 0.108, 3.036, 3.1365, 0.125, 0.3085, 0.4335, 0.117, 0.15, 
0.267, 0.1165, 0.254, 0.359), Hand = c(0.369, 1.4485, 1.8075, 
0.75, 2.3315, 2.896, 0.35, 1.8555, 2.222, 0.35, 2.788, 3.056, 
0.2165, 0.9965, 1.23, 0.3835, 1.133, 1.483, 0.517, 2.817, 3.3425, 
0.433, 3.1015, 3.4345, 0.283, 1.3025, 1.5895, 0.367, 2.401, 2.801, 
0.475, 1.45, 1.965, 0.4, 1.5335, 1.911, 0.4125, 1.25, 1.658, 
0.4005, 1.483, 2.3415, 0.35, 1.5815, 1.8805, 0.4, 2.879, 3.301, 
0.2165, 1.0765, 1.2935, 0.392, 1.198, 1.588, 0.5085, 2.475, 3.147, 
0.433, 3.027, 3.461, 0.258, 1.308, 1.508, 0.3665, 1.69, 2.107, 
0.4165, 1.6245, 2.041, 0.383, 1.609, 2.026, 0.329, 1.771, 2.096, 
0.667, 2.406, 2.915, 0.3665, 2.3945, 2.8, 0.3165, 2.574, 2.907, 
0.275, 1.0995, 1.335, 0.466, 1.274, 1.7655, 0.6415, 3.189, 3.894, 
0.4585, 3.2325, 3.7165, 0.2835, 1.6815, 1.9735, 0.433, 2.112, 
2.654, 0.433, 1.992, 2.309, 0.4245, 2.074, 2.541, 0.358, 1.555, 
1.947, 0.4, 2.196, 2.596, 0.3, 1.476, 1.8, 0.367, 1.319, 1.636, 
0.3, 2.3245, 2.5915, 0.267, 1.513, 1.763, 0.434, 2.13, 2.48, 
0.45, 1.533, 1.955, 0.519, 4.0535, 4.6585, 0.3335, 1.393, 1.7415, 
0.3, 1.404, 1.6775, 0.742, 2.479, 3.199, 0.3335, 1.2575, 1.628, 
0.3, 1.627, 1.994, 0.333, 1.627, 1.998, 0.325, 1.2035, 1.5895, 
0.335, 1.972, 2.301, 0.3, 1.627, 1.903, 0.4165, 2.0135, 2.4555, 
0.522, 1.723, 2.1685, 0.3755, 3.549, 3.928, 0.3745, 1.3065, 1.6565, 
0.275, 1.509, 1.743, 0.4, 1.896, 2.296, 0.3, 1.337, 1.57, 0.35, 
1.9335, 2.3835, 0.284, 1.7195, 1.9995, 0.4, 1.614, 1.984, 0.35, 
1.8595, 2.693, 0.325, 2.093, 2.418, 0.4335, 2.756, 3.2325, 0.564, 
1.784, 2.348, 0.466, 4.445, 5.045, 0.3415, 1.954, 2.304, 0.333, 
1.7855, 2.136, 0.567, 2.418, 3.051, 0.3665, 1.73, 2.0245, 0.2845, 
1.301, 1.5885, 0.3, 1.437, 1.687, 0.3995, 2.0635, 2.3985, 0.2585, 
0.85, 1.1, 0.358, 0.958, 1.381, 0.4415, 1.903, 2.413, 0.4, 1.7835, 
2.1765, 0.2745, 1.0625, 1.335, 0.366, 1.831, 2.184, 0.475, 1.581, 
2.014, 0.558, 1.569, 2.2635, 0.3195, 1.479, 1.743, 0.3495, 1.427, 
1.7055, 0.333, 1.166, 1.466, 0.583, 2.1075, 2.54, 0.267, 0.812, 
1.0605, 0.3335, 0.9445, 1.255, 0.6475, 2.0145, 2.588, 0.367, 
1.621, 2.021, 0.283, 0.954, 1.237, 0.391, 1.461, 1.871, 0.467, 
1.742, 2.074, 0.4835, 1.6455, 2.179, 0.354, 1.74, 2.002, 0.383, 
1.35, 1.752, 0.3, 1.365, 1.665, 0.4, 2.157, 2.612, 0.25, 0.786, 
1.04, 0.3165, 1.0795, 1.4045, 0.526, 2.419, 2.892, 0.392, 1.695, 
2.1105, 0.2745, 0.979, 1.254, 0.3745, 2.011, 2.3935, 0.508, 2.128, 
2.748, 0.475, 1.893, 2.4005, 0.329, 1.2055, 1.522, 0.3075, 1.6185, 
1.976, 0.3, 0.999, 1.363, 0.3, 1.453, 1.7445, 0.292, 1.1085, 
1.392, 0.283, 1.151, 1.476, 0.3165, 1.3145, 1.6235, 0.2415, 1.1525, 
1.414, 0.3915, 3.35, 3.6665, 0.3335, 0.95, 1.242, 0.3255, 1.0535, 
1.362, 0.333, 1.376, 1.718, 0.3835, 1.0295, 1.413, 0.3, 1.237, 
1.704, 0.3, 1.209, 1.542, 0.292, 1.0765, 1.3845, 0.2665, 0.99, 
1.2895, 0.3, 1.368, 1.585, 0.342, 1.0525, 1.394, 0.275, 1.293, 
1.588, 0.4, 2.899, 3.203, 0.2655, 0.8785, 1.102, 0.3085, 0.892, 
1.225, 0.334, 0.946, 1.28, 0.341, 1.236, 1.5285, 0.267, 2.03, 
2.297, 0.3195, 1.279, 1.532, 0.317, 1.583, 1.883, 0.283, 1.4125, 
1.679, 0.3165, 1.5555, 1.822, 0.4, 1.245, 1.645, 0.25, 1.2275, 
1.512, 0.3415, 2.8515, 3.245, 0.3165, 1.0295, 1.338, 0.316, 1.132, 
1.465, 0.3335, 1.2335, 1.5585)), row.names = c(NA, -432L), class = c("tbl_df", 
"tbl", "data.frame"))

Index.labs <- c("RT (s)", "MT (s)", "RSP (s)")
names(Index.labs) <- c("1", "2", "3")

Group.labs <- c("Visible", "Remembered")
names(Group.labs) <- c("Grp_1", "Grp_2")

Cors <- dataLong %>% group_by(Group,Index) %>% summarize(Cor=round(cor(Eye,Hand),3))

ggplot(dataLong,aes(x=Hand,y=Eye))+geom_point()+
  facet_grid(Index~Group, labeller = labeller(Index = Index.labs, Group = Group.labs))+
  geom_text(aes(x=1.5,y=3,label=paste("r=",Cor)),size = 4.5,data=Cors) + theme_bw() + theme(
    axis.text.x = element_text(size = 12,face="bold"),
    axis.text.y = element_text(size = 12, face = "bold"),
    axis.title.y = element_text(vjust= 1.8, size = 20),
    axis.title.x = element_text(vjust= -0.5, size = 18),
    axis.title = element_text(face = "bold")) +                                                                # Change font size
  theme(strip.text.x = element_text(size = 12, face = "bold")) +
  theme(strip.text.y = element_text(size = 12, face = "bold")) + 
  theme(aspect.ratio = 5/5) + geom_abline(intercept =0 , slope = 1)

这里至少有两个复杂因素。

  1. facet_grid 相比,scales = "free" 有一些限制:同一列中的图仍然具有相同的 x 轴,同一行中的图仍然具有相同的 x 轴相同的 y 轴。一种解决方案是使用 facet_wrap,它允许所有尺度相互独立。

  2. geom_text 设置为 x=1.5,y=3 意味着轴将始终至少延伸这么远,即使数据范围更小——例如使用您的 RT 数据,其中最大 y 值约为 0.6。一种解决方案是为数据中的每个方面设置标签位置,作为该方面范围的比例。

library(tidyverse)

Index.labs <- c("RT (s)", "MT (s)", "RSP (s)")
names(Index.labs) <- c("1", "2", "3")

Group.labs <- c("Visible", "Remembered")
names(Group.labs) <- c("Grp_1", "Grp_2")

Cors <- dataLong %>% 
  group_by(Group, Index) %>% 
  summarize(
    text_x = max(Hand) * .1,    # plot text at 10% of x axis
    text_y = max(Eye) * .9,     # & 90% of y axis
    Cor=round(cor(Eye, Hand), 3)
  )

ggplot(dataLong, aes(x = Hand, y = Eye)) +
  geom_point() +
  facet_wrap(                   # facet_wrap instead of facet_grid
    vars(Index, Group), 
    ncol = 2,
    scales = "free",
    labeller = labeller(Index = Index.labs, Group = Group.labs)
  )+
  geom_text(
    aes(x = text_x, y = text_y, label = paste("r =", Cor)), # replace 1.5 & 3 w/ 
    size = 4.5,                                             # text_x & text_y
    hjust = 0,
    data = Cors
  ) + 
  theme_bw() + 
  theme(
    axis.text = element_text(size = 12, face = "bold"),
    axis.title.y = element_text(vjust= 1.8, size = 20),
    axis.title.x = element_text(vjust= -0.5, size = 18),
    axis.title = element_text(face = "bold"),
    strip.text = element_text(size = 12, face = "bold"),
    aspect.ratio = .8     # adjust aspect ratio to allow a bit more width
  ) + 
  geom_abline()      # intercept=0, slope=1 are defaults, don't need to specify

您甚至可能想要 finer-grained 控制——例如,将轴限制设置为在每个 Index 内相等但让它们在索引之间变化可能会很好。在这一点上,更容易制作具有不同规格的多个地块,然后使用 cowplot or patchwork.

将它们连接在一起

这是另一种方法,使用 cowplot 来合并多个地块。这可能需要更多的努力,但可以让您更好地控制。在此示例中,最终图在 Index 的每个级别内具有相同的轴范围,但让这些在 Index 之间变化。

library(tidyverse)
library(cowplot)

# since we'll have to generate three plots, we'll put our `ggplot` spec 
# into a function
plot_row <- function(dataLong, Cors) {
  text_x <- max(dataLong$Hand) * .1    # set text position as proportion of 
  text_y <- max(dataLong$Eye) * .9     # subplot range
  p <- ggplot(dataLong, aes(x = Hand, y = Eye)) +
    geom_point() +
    facet_grid(
      Index ~ Group, 
      labeller = labeller(Index = Index.labs, Group = Group.labs)
    ) +
    geom_text(
      aes(x = text_x, y = text_y, label = paste("r =", Cor)),
      size = 4.5,
      hjust = 0,
      data = Cors
    ) + 
    coord_fixed(xlim = c(0, NA), ylim = c(0, NA)) +
    theme_bw() + 
    theme(
      axis.text = element_text(size = 12, face = "bold"),
      axis.title = element_blank(),
      strip.text.y = element_text(size = 12, face = "bold"),
      plot.margin = margin(0,0,0,0)
    ) + 
    geom_abline()
  # only include column facet labels for the top row
  if ("3" %in% dataLong$Index) {
    p + theme(strip.text.x = element_text(size = 12, face = "bold"))
  } else {
    p + theme(strip.text.x = element_blank())
  }
}

# unchanged from original code
Index.labs <- c("RT (s)", "MT (s)", "RSP (s)")
names(Index.labs) <- c("1", "2", "3")

Group.labs <- c("Visible", "Remembered")
names(Group.labs) <- c("Grp_1", "Grp_2")

Cors <- dataLong %>% group_by(Group,Index) %>% summarize(Cor=round(cor(Eye,Hand),3))

# split data and Cors into three separate dfs each -- one for each level of
# Index -- and pass them to the plotting function
dataLongList <- split(dataLong, dataLong$Index)
CorsList <- split(Cors, Cors$Index)
plot_rows <- map2(dataLongList, CorsList, plot_row)

# use cowplot::plot_grid to assemble the plots, and cowplot::add_sub to 
# add axis labels
p <- plot_grid(plotlist = rev(plot_rows), ncol = 1, align = "vh") %>% 
  add_sub("Hand", fontface = "bold", size = 18) %>% 
  add_sub("Eye", fontface = "bold", size = 18, x = .1, y = 6.5, angle = 90)

# NB, placing the axis labels using `add_sub` is the most finicky part -- the 
# right values of x, y, hjust, and vjust will depend on your plot dimensions and
# margins, and often take trial and error to figure out.

ggsave(“plot.png”, p, width = 5, height = 7.5)

聚类点的表示总是很棘手,看看 hexbin 库中的 geom_hex(),而不是 geom_point()