根据 R 中的 GPS 点用方向箭头替换点

问题描述 投票:0回答:1

我正在根据大量 GPS 点制作运动图表。通常,我只是用一个点来绘制它们,但添加显示鸟移动方向的箭头也很好。但是,我似乎不知道该怎么做。这是我当前地图的代码。正如您所看到的,我尝试使用向下三角形,但它始终指向下方。

我确实有点的方向(称为direction_deg)。我想知道这是否能起到作用。

这是前 300 行数据

dput(head(data_test, n = 300))
structure(list(device_id = structure(c(7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L), levels = c("215395", "215396", "215397", 
"215398", "215400", "215401", "215403", "226418", "226419", "226425", 
"226427"), class = "factor"), Longitude = c(-82.046196, -82.050293, 
-82.050415, -82.052185, -82.05043, -82.050415, -82.050522, -82.050461, 
-82.04995, -82.050415, -82.049904, -82.050507, -82.050529, -82.058907, 
-82.059105, -82.05928, -82.059479, -82.059532, -82.059464, -82.059341, 
-82.077515, -82.064049, -82.05426, -82.05899, -82.058876, -82.059029, 
-82.058922, -82.058998, -82.058784, -82.05909, -82.059135, -82.058594, 
-82.059128, -82.058929, -82.059067, -82.058586, -82.059052, -82.066231, 
-82.066002, -82.066315, -82.066101, -82.065704, -82.065506, -82.066063, 
-82.066177, -82.065796, -82.066055, -82.066147, -82.065773, -82.058876, 
-82.058914, -82.058334, -82.059189, -82.058914, -82.059265, -82.059227, 
-82.059174, -82.05912, -82.058907, -82.058929, -82.058746, -82.06678, 
-82.065544, -82.066139, -82.066063, -82.065887, -82.065895, -82.066208, 
-82.066292, -82.064926, -82.065887, -82.065765, -82.059196, -82.057411, 
-82.057632, -82.057686, -82.057671, -82.057701, -82.057739, -82.057854, 
-82.057541, -82.057877, -82.057793, -82.057747, -82.05777, -82.058861, 
-82.058578, -82.059181, -82.059319, -82.058861, -82.058846, -82.059189, 
-82.059227, -82.05883, -82.058853, -82.059135, -82.057419, -82.057877, 
-82.056488, -82.057701, -82.059082, -82.059113, -82.05912, -82.059074, 
-82.057808, -82.059059, -82.05899, -82.059105, -82.059326, -82.066345, 
-82.066063, -82.066483, -82.065994, -82.06601, -82.065964, -82.06636, 
-82.066414, -82.06633, -82.065796, -82.065697, -82.06562, -82.058929, 
-82.059151, -82.058655, -82.05909, -82.059074, -82.059052, -82.05896, 
-82.059219, -82.059029, -82.059059, -82.059242, -82.05899, -82.066193, 
-82.066116, -82.066231, -82.066002, -82.066025, -82.06588, -82.066093, 
-82.066689, -82.066139, -82.059021, -82.058838, -82.059029, -82.059074, 
-82.057587, -82.057549, -82.057335, -82.057312, -82.057625, -82.057655, 
-82.057785, -82.05806, -82.058296, -82.058067, -82.061409, -82.061493, 
-82.061279, -82.061325, -82.061699, -82.061867, -82.061943, -82.061836, 
-82.061371, -82.061546, -82.06131, -82.058861, -82.058868, -82.059036, 
-82.058899, -82.058876, -82.058884, -82.05883, -82.059013, -82.058853, 
-82.05896, -82.058876, -82.058922, -82.061584, -82.066246, -82.066673, 
-82.066559, -82.066643, -82.066467, -82.066452, -82.06604, -82.066643, 
-82.06675, -82.066544, -82.059021, -82.059021, -82.059021, -82.059006, 
-82.058914, -82.059181, -82.058998, -82.059052, -82.059074, -82.05909, 
-82.059082, -82.05938, -82.066483, -82.066315, -82.066795, -82.066574, 
-82.066559, -82.066544, -82.066338, -82.0662, -82.066612, -82.066742, 
-82.066406, -82.059082, -82.059044, -82.059074, -82.05909, -82.059067, 
-82.059059, -82.059059, -82.059036, -82.059082, -82.059074, -82.059189, 
-82.066483, -82.066544, -82.066505, -82.066093, -82.065979, -82.066132, 
-82.065926, -82.065887, -82.06572, -82.065849, -82.06575, -82.066071, 
-82.059105, -82.059059, -82.059158, -82.057693, -82.057716, -82.057663, 
-82.057655, -82.058998, -82.059105, -82.058975, -82.05909, -82.059059, 
-82.066422, -82.066803, -82.066376, -82.066284, -82.066032, -82.066376, 
-82.066254, -82.06562, -82.066612, -82.066307, -82.066086, -82.059151, 
-82.059067, -82.059052, -82.213898, -82.231255, -82.230186, -82.227882, 
-82.227455, -82.228874, -82.22731, -82.227028, -82.227592, -82.226921, 
-82.226555, -82.22699, -82.225365, -82.225792, -82.225761, -82.226379, 
-82.226494, -82.226822, -82.226715, -82.2267, -82.22686, -82.227997, 
-82.228912, -82.229256, -82.229141, -82.228584, -82.226929, -82.228607, 
-82.228928, -82.227394, -82.229607, -82.225929, -82.228813, -82.222137, 
-82.235344, -82.235153, -82.23526, -82.235504), Latitude = c(34.207428, 
34.206562, 34.206852, 34.206772, 34.206852, 34.206745, 34.20697, 
34.206879, 34.206905, 34.206886, 34.207195, 34.206894, 34.206753, 
34.204288, 34.204369, 34.204643, 34.20459, 34.204601, 34.204571, 
34.204506, 34.214371, 34.207741, 34.196747, 34.205162, 34.204662, 
34.204193, 34.204044, 34.204079, 34.203812, 34.203999, 34.204086, 
34.204552, 34.204212, 34.204216, 34.204109, 34.204674, 34.204212, 
34.204288, 34.204235, 34.204464, 34.204094, 34.204472, 34.204308, 
34.204563, 34.204517, 34.204197, 34.20459, 34.204548, 34.204338, 
34.204334, 34.20435, 34.204742, 34.204201, 34.204182, 34.20417, 
34.204281, 34.204109, 34.204212, 34.204113, 34.204189, 34.204174, 
34.204975, 34.204529, 34.204346, 34.204197, 34.204235, 34.204319, 
34.204418, 34.204281, 34.20433, 34.20459, 34.204403, 34.204201, 
34.205608, 34.204521, 34.205299, 34.205055, 34.205273, 34.205299, 
34.205383, 34.205204, 34.204784, 34.205219, 34.205189, 34.205147, 
34.204483, 34.204899, 34.205341, 34.205395, 34.20517, 34.205116, 
34.205116, 34.204731, 34.204933, 34.205173, 34.205147, 34.205666, 
34.205387, 34.205685, 34.205208, 34.204166, 34.204189, 34.204197, 
34.20414, 34.205338, 34.204144, 34.204269, 34.204147, 34.204315, 
34.204067, 34.204117, 34.204174, 34.204063, 34.203949, 34.20433, 
34.204166, 34.204334, 34.204098, 34.204475, 34.204365, 34.204391, 
34.203918, 34.204121, 34.204079, 34.20417, 34.204151, 34.204144, 
34.204121, 34.204185, 34.204185, 34.204189, 34.204121, 34.204231, 
34.204185, 34.204338, 34.204182, 34.204365, 34.204147, 34.20433, 
34.204327, 34.203571, 34.203945, 34.205029, 34.204178, 34.204285, 
34.204109, 34.20536, 34.20573, 34.205574, 34.205582, 34.205276, 
34.205269, 34.205315, 34.205139, 34.205067, 34.20517, 34.204571, 
34.20491, 34.204632, 34.204617, 34.204742, 34.204357, 34.204678, 
34.20488, 34.204849, 34.204731, 34.204704, 34.204369, 34.204319, 
34.204353, 34.204369, 34.204342, 34.204445, 34.204277, 34.20435, 
34.204311, 34.204311, 34.204296, 34.20435, 34.204285, 34.204014, 
34.204277, 34.204369, 34.204391, 34.204281, 34.204453, 34.20396, 
34.204247, 34.204247, 34.204182, 34.204201, 34.204159, 34.204067, 
34.204151, 34.204174, 34.204124, 34.20417, 34.204201, 34.204178, 
34.20422, 34.203785, 34.20451, 34.204437, 34.204361, 34.204346, 
34.204472, 34.204449, 34.204231, 34.20435, 34.203995, 34.204418, 
34.204491, 34.204372, 34.204208, 34.204258, 34.204212, 34.204235, 
34.204227, 34.20422, 34.204205, 34.20422, 34.204159, 34.20417, 
34.204208, 34.204197, 34.204384, 34.204018, 34.204529, 34.204491, 
34.204491, 34.204369, 34.204445, 34.204185, 34.204483, 34.204456, 
34.20475, 34.204155, 34.204105, 34.204189, 34.205303, 34.205421, 
34.205318, 34.205303, 34.204205, 34.204155, 34.204216, 34.204212, 
34.204182, 34.204277, 34.204575, 34.204128, 34.204304, 34.204426, 
34.204098, 34.204124, 34.204475, 34.204109, 34.204079, 34.204144, 
34.204163, 34.204189, 34.204182, 34.581928, 34.620892, 34.622192, 
34.620655, 34.620605, 34.619759, 34.620422, 34.621002, 34.620312, 
34.622047, 34.622654, 34.622437, 34.63134, 34.630287, 34.630497, 
34.630714, 34.630589, 34.631077, 34.630459, 34.630589, 34.630692, 
34.620792, 34.620338, 34.619976, 34.621052, 34.62059, 34.620804, 
34.620304, 34.620026, 34.619995, 34.620552, 34.621277, 34.620514, 
34.630039, 34.627159, 34.627468, 34.627087, 34.627464), UTC_datetime = c("2023-02-18 23:08:53", 
"2023-02-19 00:08:45", "2023-02-19 01:08:29", "2023-02-19 02:08:14", 
"2023-02-19 03:08:05", "2023-02-19 04:07:49", "2023-02-19 05:08:29", 
"2023-02-19 06:08:05", "2023-02-19 07:07:39", "2023-02-19 08:08:20", 
"2023-02-19 09:08:32", "2023-02-19 10:08:11", "2023-02-19 11:08:35", 
"2023-02-19 12:08:15", "2023-02-19 13:08:15", "2023-02-19 14:08:24", 
"2023-02-19 15:08:35", "2023-02-19 16:08:04", "2023-02-19 17:08:35", 
"2023-02-19 18:08:06", "2023-02-19 19:08:04", "2023-02-19 20:08:27", 
"2023-02-19 21:08:26", "2023-02-19 22:08:26", "2023-02-19 23:08:35", 
"2023-02-20 00:08:05", "2023-02-20 01:08:07", "2023-02-20 02:08:05", 
"2023-02-20 03:08:11", "2023-02-20 04:08:06", "2023-02-20 05:08:06", 
"2023-02-20 06:08:42", "2023-02-20 07:08:06", "2023-02-20 08:08:07", 
"2023-02-20 09:08:09", "2023-02-20 10:08:35", "2023-02-20 11:08:06", 
"2023-02-20 12:08:08", "2023-02-20 13:08:09", "2023-02-20 14:08:07", 
"2023-02-20 15:08:07", "2023-02-20 16:08:04", "2023-02-20 17:08:09", 
"2023-02-20 18:08:12", "2023-02-20 19:08:21", "2023-02-20 20:08:12", 
"2023-02-20 21:08:12", "2023-02-20 22:08:08", "2023-02-20 23:08:09", 
"2023-02-21 00:08:06", "2023-02-21 01:08:04", "2023-02-21 02:08:09", 
"2023-02-21 03:08:09", "2023-02-21 04:08:07", "2023-02-21 05:08:09", 
"2023-02-21 06:08:35", "2023-02-21 07:08:02", "2023-02-21 08:08:05", 
"2023-02-21 09:08:06", "2023-02-21 10:08:05", "2023-02-21 11:08:04", 
"2023-02-21 12:08:27", "2023-02-21 13:08:12", "2023-02-21 14:08:14", 
"2023-02-21 15:08:35", "2023-02-21 16:08:12", "2023-02-21 17:08:35", 
"2023-02-21 18:08:12", "2023-02-21 19:08:15", "2023-02-21 20:08:35", 
"2023-02-21 21:08:35", "2023-02-21 22:08:04", "2023-02-21 23:08:09", 
"2023-02-22 00:08:04", "2023-02-22 01:08:10", "2023-02-22 02:08:07", 
"2023-02-22 03:08:33", "2023-02-22 04:08:04", "2023-02-22 05:08:04", 
"2023-02-22 06:08:06", "2023-02-22 07:08:09", "2023-02-22 08:08:14", 
"2023-02-22 09:08:35", "2023-02-22 10:08:04", "2023-02-22 11:08:07", 
"2023-02-22 12:08:06", "2023-02-22 13:08:09", "2023-02-22 14:08:09", 
"2023-02-22 15:08:07", "2023-02-22 16:08:07", "2023-02-22 17:08:34", 
"2023-02-22 18:08:05", "2023-02-22 19:08:07", "2023-02-22 20:08:04", 
"2023-02-22 21:08:05", "2023-02-22 22:08:05", "2023-02-22 23:08:36", 
"2023-02-23 00:08:44", "2023-02-23 01:08:07", "2023-02-23 02:08:27", 
"2023-02-23 03:08:35", "2023-02-23 04:08:04", "2023-02-23 05:08:04", 
"2023-02-23 06:08:14", "2023-02-23 07:08:14", "2023-02-23 08:08:35", 
"2023-02-23 09:08:18", "2023-02-23 10:08:35", "2023-02-23 11:08:03", 
"2023-02-23 12:08:09", "2023-02-23 13:08:15", "2023-02-23 14:08:35", 
"2023-02-23 15:08:12", "2023-02-23 16:08:44", "2023-02-23 17:08:35", 
"2023-02-23 18:08:09", "2023-02-23 19:08:35", "2023-02-23 20:08:03", 
"2023-02-23 21:08:35", "2023-02-23 22:08:32", "2023-02-23 23:08:35", 
"2023-02-24 00:08:09", "2023-02-24 01:08:07", "2023-02-24 02:08:18", 
"2023-02-24 03:08:35", "2023-02-24 04:08:02", "2023-02-24 05:08:14", 
"2023-02-24 06:08:14", "2023-02-24 07:08:07", "2023-02-24 08:08:35", 
"2023-02-24 09:08:03", "2023-02-24 10:08:06", "2023-02-24 11:08:14", 
"2023-02-24 12:08:35", "2023-02-24 13:08:03", "2023-02-24 14:08:14", 
"2023-02-24 15:08:13", "2023-02-24 16:08:35", "2023-02-24 17:08:53", 
"2023-02-24 18:08:08", "2023-02-24 19:08:15", "2023-02-24 20:08:36", 
"2023-02-24 22:08:36", "2023-02-24 23:08:15", "2023-02-25 00:08:35", 
"2023-02-25 01:08:12", "2023-02-25 02:08:12", "2023-02-25 03:08:35", 
"2023-02-25 04:08:01", "2023-02-25 05:08:03", "2023-02-25 06:08:14", 
"2023-02-25 07:08:12", "2023-02-25 08:08:36", "2023-02-25 09:08:04", 
"2023-02-25 10:08:14", "2023-02-25 11:08:35", "2023-02-25 12:08:02", 
"2023-02-25 13:08:14", "2023-02-25 14:09:05", "2023-02-25 15:08:01", 
"2023-02-25 17:08:35", "2023-02-25 18:08:05", "2023-02-25 19:08:35", 
"2023-02-25 20:08:00", "2023-02-25 21:08:08", "2023-02-25 22:08:20", 
"2023-02-25 23:08:35", "2023-02-26 00:08:15", "2023-02-26 01:08:15", 
"2023-02-26 02:08:16", "2023-02-26 03:08:16", "2023-02-26 04:08:35", 
"2023-02-26 05:08:00", "2023-02-26 06:08:00", "2023-02-26 07:08:05", 
"2023-02-26 08:08:16", "2023-02-26 09:08:15", "2023-02-26 10:08:35", 
"2023-02-26 11:08:01", "2023-02-26 12:08:09", "2023-02-26 13:08:54", 
"2023-02-26 14:08:35", "2023-02-26 15:08:51", "2023-02-26 16:08:14", 
"2023-02-26 17:08:59", "2023-02-26 18:08:20", "2023-02-26 19:08:35", 
"2023-02-26 20:08:00", "2023-02-26 22:08:35", "2023-02-26 23:08:35", 
"2023-02-27 00:08:36", "2023-02-27 01:08:21", "2023-02-27 02:08:18", 
"2023-02-27 03:08:32", "2023-02-27 04:08:19", "2023-02-27 05:08:19", 
"2023-02-27 06:08:44", "2023-02-27 07:08:44", "2023-02-27 08:08:45", 
"2023-02-27 09:08:36", "2023-02-27 10:08:14", "2023-02-27 11:08:13", 
"2023-02-27 12:09:03", "2023-02-27 13:08:45", "2023-02-27 14:08:45", 
"2023-02-27 16:09:35", "2023-02-27 17:08:18", "2023-02-27 18:08:24", 
"2023-02-27 19:08:36", "2023-02-27 20:08:46", "2023-02-27 21:08:35", 
"2023-02-27 22:08:45", "2023-02-27 23:09:59", "2023-02-28 00:09:14", 
"2023-02-28 01:09:15", "2023-02-28 02:09:35", "2023-02-28 03:08:59", 
"2023-02-28 04:09:35", "2023-02-28 05:08:59", "2023-02-28 06:08:59", 
"2023-02-28 07:09:16", "2023-02-28 08:09:35", "2023-02-28 10:09:35", 
"2023-02-28 11:09:06", "2023-02-28 12:10:05", "2023-02-28 13:09:35", 
"2023-02-28 14:09:14", "2023-02-28 15:09:53", "2023-02-28 16:09:45", 
"2023-02-28 17:09:14", "2023-02-28 18:09:35", "2023-02-28 19:10:22", 
"2023-02-28 20:09:14", "2023-02-28 21:09:35", "2023-02-28 22:09:35", 
"2023-02-28 23:09:06", "2023-03-01 00:09:14", "2023-03-01 01:09:14", 
"2023-03-01 02:09:15", "2023-03-01 03:09:16", "2023-03-01 04:09:35", 
"2023-03-01 05:09:14", "2023-03-01 06:09:14", "2023-03-01 07:09:29", 
"2023-03-01 08:09:15", "2023-03-01 09:09:15", "2023-03-01 10:09:15", 
"2023-03-01 11:09:15", "2023-03-01 12:09:35", "2023-03-01 13:09:29", 
"2023-03-01 14:09:44", "2023-03-01 15:09:15", "2023-03-01 16:09:29", 
"2023-03-01 17:09:14", "2023-03-01 18:09:47", "2023-03-01 19:09:15", 
"2023-03-01 20:09:38", "2023-03-01 22:09:35", "2023-03-01 23:09:07", 
"2023-03-02 00:09:15", "2023-03-02 01:09:35", "2023-03-02 02:08:58", 
"2023-03-02 03:08:58", "2023-03-02 04:09:35", "2023-03-02 05:09:14", 
"2023-03-02 06:09:14", "2023-03-02 07:09:15", "2023-03-02 08:09:35", 
"2023-03-02 09:09:05", "2023-03-02 10:09:01", "2023-03-02 11:09:33", 
"2023-03-02 12:09:45", "2023-03-02 13:09:45", "2023-03-02 14:09:32", 
"2023-03-02 15:09:36", "2023-03-02 16:09:31", "2023-03-02 17:09:29", 
"2023-03-02 18:09:30", "2023-03-02 19:09:34", "2023-03-02 20:09:30", 
"2023-03-02 21:09:36", "2023-03-02 22:09:33", "2023-03-02 23:09:29", 
"2023-03-03 00:09:29", "2023-03-03 01:09:29", "2023-03-03 02:09:29", 
"2023-03-03 03:09:29", "2023-03-03 04:09:30", "2023-03-03 05:09:30", 
"2023-03-03 06:09:29", "2023-03-03 07:09:29", "2023-03-03 08:09:30", 
"2023-03-03 09:09:59", "2023-03-03 10:09:28", "2023-03-03 11:10:19", 
"2023-03-03 12:10:53", "2023-03-03 13:10:34", "2023-03-03 14:10:44", 
"2023-03-03 15:10:48", "2023-03-03 16:10:53"), direction_deg = c(314L, 
85L, 358L, 65L, 190L, 167L, 135L, 156L, 356L, 278L, 126L, 211L, 
250L, 309L, 248L, 255L, 60L, 110L, 139L, 179L, 44L, 130L, 171L, 
343L, 153L, 31L, 17L, 126L, 59L, 284L, 52L, 238L, 247L, 178L, 
271L, 201L, 184L, 15L, 81L, 141L, 286L, 140L, 40L, 273L, 192L, 
281L, 170L, 19L, 148L, 230L, 10L, 37L, 221L, 347L, 359L, 130L, 
120L, 306L, 5L, 71L, 125L, 115L, 292L, 25L, 88L, 335L, 20L, 77L, 
26L, 26L, 209L, 11L, 341L, 111L, 104L, 125L, 282L, 356L, 127L, 
149L, 116L, 28L, 176L, 214L, 65L, 29L, 16L, 177L, 325L, 165L, 
53L, 9L, 25L, 179L, 41L, 220L, 111L, 223L, 291L, 116L, 137L, 
314L, 139L, 22L, 20L, 33L, 122L, 191L, 19L, 63L, 80L, 51L, 174L, 
168L, 4L, 51L, 23L, 147L, 121L, 263L, 119L, 7L, 228L, 124L, 89L, 
327L, 149L, 33L, 291L, 43L, 16L, 58L, 139L, 61L, 341L, 262L, 
259L, 348L, 106L, 334L, 145L, 285L, 303L, 54L, 57L, 52L, 94L, 
190L, 279L, 156L, 347L, 90L, 43L, 152L, 315L, 163L, 289L, 9L, 
152L, 329L, 13L, 251L, 267L, 317L, 172L, 296L, 25L, 96L, 48L, 
22L, 96L, 285L, 83L, 151L, 84L, 269L, 178L, 168L, 345L, 322L, 
209L, 344L, 271L, 227L, 84L, 311L, 14L, 166L, 245L, 127L, 184L, 
8L, 165L, 343L, 168L, 313L, 148L, 82L, 143L, 198L, 171L, 200L, 
21L, 36L, 256L, 146L, 341L, 98L, 262L, 126L, 122L, 182L, 83L, 
341L, 217L, 357L, 193L, 6L, 85L, 296L, 43L, 44L, 135L, 331L, 
58L, 201L, 5L, 165L, 309L, 307L, 208L, 135L, 106L, 211L, 220L, 
314L, 210L, 44L, 239L, 113L, 95L, 7L, 103L, 305L, 323L, 166L, 
168L, 261L, 61L, 269L, 357L, 340L, 42L, 331L, 186L, 43L, 323L, 
354L, 58L, 234L, 261L, 315L, 2L, 255L, 301L, 61L, 58L, 43L, 288L, 
276L, 248L, 206L, 46L, 64L, 8L, 83L, 134L, 262L, 283L, 51L, 37L, 
69L, 144L, 136L, 58L, 322L, 296L, 169L, 63L, 30L, 93L, 266L, 
176L, 317L, 186L, 118L, 135L, 264L, 225L, 327L)), row.names = c(NA, 
300L), class = "data.frame")
library(ggplot2)

ggplot(data = states) + geom_sf(fill = "grey95", color = "grey70") +
  ##  AF scale
  coord_sf(xlim = c(min_long,max_long),
           ylim = c(min_lat, max_lat),
           expand = F) +
  geom_path(
    data = data,
    aes(x = Longitude, y = Latitude, group = device_id),
    color = "black",
    alpha = 1) +
  geom_point(data = data,
              aes(x = Longitude, y = Latitude, color = device_id),
              shape = 25, 
              size = 4) +
  # annotation_scale(location = 'br') +
  annotation_north_arrow(location = "tl",
                         style = north_arrow_fancy_orienteering)  +
  labs(
    x = "",
    y = "",
    color = "Transmitter",
    title = map_title)+
  theme_light(base_family = "Times New Roman")+
  theme(legend.position = "right", legend.title = element_text(size=30, face="bold"), plot.title = element_text(size=40), text = element_text(size = 30)) +
  scale_color_manual(values = c("#542788", "#E08214")) # change to what you want

这就是我想要的箭头的样子。实际上,我可以取出这些点,然后沿着 geom_path 间隔箭头。什么都是最简单的。

如果您需要任何其他信息,请告诉我!谢谢!!

r ggplot2 gps
1个回答
0
投票

不幸的是,你的代码除了可重现之外什么都没有(请考虑下一次提供一个reprex,但这里有一个如何使用一些虚假数据解决这个问题的示例。

想法是,不是绘制一个点,而是绘制代表三角形的文本(Unicode

U+25BD
),然后可以旋转该文本:

library(ggplot2)
library(sf)
library(dplyr)

states <- st_as_sf(maps::map("state", fill = TRUE, plot = FALSE))

## generate some fake data

gen_data <- function(x0 = -87.5, y0 = 40, r = 5.5, l = 360, bird = "Bird 1") {
  angles <- seq(0, 360, length.out = l) 
  xx <- x0 + r * cos(angles  / 180 * pi)
  yy <- y0 + r * sin(angles / 180 * pi)
  data.frame(Longitude = xx,
             Latitude = yy,
             device_id = bird,
             direction_deg = angles)
}

path_data <- rbind(gen_data(),
                   gen_data(r = 3, bird = "Bird 2"))
point_data <- path_data %>% 
  filter(row_number() %% 10 == 1)

## now plot the data but use `geom_text` which we can rotate

ggplot(data = states) + 
  geom_sf(fill = "grey95", color = "grey70") +
  coord_sf(xlim = c(-79, -96),
           ylim = c(33, 47),
           expand = TRUE) +
  geom_path(
    data = path_data,
    aes(x = Longitude, y = Latitude, group = device_id),
    color = "black") +
  ## unlike a point we cna rotate text
  geom_text(data = point_data,
            aes(x = Longitude, y = Latitude, color = device_id, 
                angle = direction_deg),
            label = "\U25BC", ## a filled triangle
            size = 4) +
  theme_light() +
  scale_color_manual(values = c("#542788", "#E08214")) 

© www.soinside.com 2019 - 2024. All rights reserved.