0

我很难使用 ggplot 正确绘制速度等高线

    data <- structure(list(source_id = c("-1112017591", "-1112017591", "-1112017591", 
"-1112017591", "-1112017591", "-1112017591", "-1112017591", "-1112017591", 
"-1112017591", "-1112017591", "-1112017591", "-1112017591", "-1112017591", 
"-1112017591", "-1112017591", "-1112017591", "-1112017591", "-1112017591", 
"-1112017591", "-1112017591", "-1112017591", "-1112017591", "-1112017591", 
"-1112017591", "-1112017591", "-1112017591", "-1112017591", "-1112017591", 
"-1112017591", "-1112017591", "-1112017591", "-1112017591", "-1112017591", 
"-1112017591", "-1112017591", "-1112017591", "-1112017591", "-1112017591", 
"-1112017591", "-1112017591", "-1112017591", "-1112017591", "-1112017591", 
"-1112017591", "-1112017591", "-1112017591", "-1112017591", "-1112017591", 
"-1112017591", "-1112017591", "-1112017591", "-1112017591", "-1112017591", 
"-1112017591", "-1112017591", "-1112017591", "-1112017591", "-1112017591", 
"-1112017591", "-1112017591", "-1112017591", "-1112017591", "-1112017591", 
"-1112017591", "-1112017591", "-1112017591", "1112017591", "1112017591", 
"1112017591", "1112017591", "1112017591", "1112017591", "1112017591", 
"1112017591", "1112017591", "1112017591", "1112017591", "1112017591", 
"1112017591", "1112017591", "1112017591", "1112017591", "1112017591", 
"1112017591", "1112017591", "1112017591", "1112017591", "1112017591", 
"1112017591", "1112017591", "1112017591", "1112017591", "1112017591", 
"1112017591", "1112017591", "1112017591", "1112017591", "1112017591", 
"1112017591", "1112017591", "1112017591", "1112017591", "1112017591", 
"1112017592", "1112017592", "1112017592", "1112017592", "1112017592", 
"1112017592", "1112017592", "1112017592", "1112017592", "1112017592", 
"1112017592", "1112017592", "1112017592", "1112017592", "1112017592", 
"1112017592", "1112017592", "1112017592", "1112017592", "1112017592", 
"1112017592", "1112017592", "1112017592", "1112017592", "1112017592", 
"1112017592", "1112017592", "1112017592", "1112017592", "1112017592", 
"1112017592", "1112017592", "1112017592", "1112017592", "1112017592", 
"1112017592", "1112017592"), local_timestamp = structure(c(1614606600, 
1614607500, 1614615600, 1614612900, 1614586800, 1614594600, 1614615900, 
1614614100, 1614598500, 1614597300, 1614623400, 1614613200, 1614625500, 
1614607800, 1614594300, 1614624300, 1614623700, 1614590100, 1614604200, 
1614601500, 1614594000, 1614600300, 1614596700, 1614601200, 1614615000, 
1614584100, 1614584400, 1614616500, 1614591000, 1614590400, 1614587100, 
1614624000, 1614600900, 1614590700, 1614615300, 1614600600, 1614620100, 
1614606300, 1614606900, 1614595200, 1614614700, 1614610200, 1614613500, 
1614596400, 1614613800, 1614606000, 1614597000, 1614609300, 1614625200, 
1614586500, 1614609900, 1614603600, 1614586200, 1614598800, 1614591600, 
1614593700, 1614624600, 1614611100, 1614591300, 1614594900, 1614610500, 
1614603300, 1614603900, 1614599100, 1614614400, 1614609000, 1614587400, 
1614596100, 1614609900, 1614609000, 1614604200, 1614612600, 1614608100, 
1614615600, 1614607800, 1614614400, 1614591000, 1614595800, 1614610200, 
1614600000, 1614609600, 1614610500, 1614613800, 1614599700, 1614588900, 
1614611700, 1614599400, 1614598500, 1614611100, 1614589500, 1614590400, 
1614588600, 1614589800, 1614603900, 1614590100, 1614614100, 1614617400, 
1614589200, 1614615300, 1614611400, 1614591300, 1614591600, 1614587100, 
1614611100, 1614587400, 1614596100, 1614609900, 1614612600, 1614591000, 
1614609000, 1614607800, 1614600000, 1614615600, 1614589500, 1614614400, 
1614608100, 1614604200, 1614588600, 1614590100, 1614610200, 1614599400, 
1614598500, 1614609600, 1614610500, 1614588900, 1614615300, 1614589800, 
1614599700, 1614614100, 1614611400, 1614595800, 1614603900, 1614589200, 
1614591300, 1614591600, 1614611700, 1614587100, 1614590400, 1614617400, 
1614613800), tzone = "UTC", class = c("POSIXct", "POSIXt")), 
    avg_speed_mph = c(18.1527380100215, 21.8834506482144, 17.3325280362682, 
    26.8084387178875, 18.6784180386543, 15.8698202497415, 23.1560188499165, 
    13.836693708741, 24.5541040324505, 25.7956036745407, 23.6816988785493, 
    15.1477869243617, 20.5562017815955, 21.0359003420027, 27.1800186908455, 
    13.3035572258013, 16.0301340173387, 16.6925157082637, 19.8639942734431, 
    22.911198600175, 23.2032430605265, 23.8072158593812, 11.6904776107532, 
    17.9501710013521, 16.4675793366738, 19.549580450171, 17.7302055993001, 
    26.4244313210849, 29.0080927384077, 22.9633937803229, 13.8690050107373, 
    9.48709536307961, 18.790264853257, 28.6514256740635, 18.5591147697447, 
    18.9518213632387, 23.3150898751292, 15.8760339616639, 19.6825538853098, 
    23.8382844189931, 11.4406863914738, 20.8022647737215, 13.171826533047, 
    13.8901316312734, 12.779119939553, 14.0467171717172, 12.4249383599777, 
    24.5702596834487, 13.5744750656168, 17.8867911397439, 17.8768492006681, 
    18.4161993955301, 15.9021315517378, 19.0947367374533, 23.1721745009147, 
    27.7230971128609, 21.683369124314, 23.0739978525412, 27.571482541955, 
    18.9928318619263, 27.3291477769824, 20.6829615048119, 13.4999105225483, 
    24.9778791855564, 13.5309790821602, 23.6903980752406, 20.7326712001909, 
    27.126580768313, 20.8805575439434, 25.5222003499563, 18.1527380100215, 
    29.2119024894615, 32.2901753758053, 30.1439592778175, 33.3166805853814, 
    23.1634753042233, 27.6746301598664, 31.5569573689652, 23.1274357750736, 
    22.6079694583632, 24.1949514833373, 24.1042312892707, 26.7326314324346, 
    21.7939731965322, 15.3727232959516, 23.3660423128927, 23.2020003181421, 
    21.390081921578, 23.4704326731886, 22.1295136403404, 13.7621291656725, 
    28.0076851189056, 12.8251014077786, 13.4489580847849, 9.94442456056629, 
    16.3731309154537, 19.353227153424, 20.3511492881572, 30.810069195896, 
    18.8772568201702, 14.9079376441581, 20.4232283464567, 15.8549073411278, 
    23.4704326731886, 20.7326712001909, 27.126580768313, 20.8805575439434, 
    29.2119024894615, 27.6746301598664, 25.5222003499563, 33.3166805853814, 
    22.6079694583632, 30.1439592778175, 22.1295136403404, 23.1634753042233, 
    32.2901753758053, 18.1527380100215, 28.0076851189056, 9.94442456056629, 
    23.1274357750736, 23.2020003181421, 21.390081921578, 24.1949514833373, 
    24.1042312892707, 15.3727232959516, 30.810069195896, 12.8251014077786, 
    21.7939731965322, 16.3731309154537, 18.8772568201702, 31.5569573689652, 
    13.4489580847849, 20.3511492881572, 14.9079376441581, 20.4232283464567, 
    23.3660423128927, 15.8549073411278, 13.7621291656725, 19.353227153424, 
    26.7326314324346), `Distance along Route (mi)` = c(0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 
    0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 
    0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 
    0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 
    0.06, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 
    0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 
    0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 
    0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12, 0.12), `Length (mi)` = c(0.06, 
    0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 
    0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 
    0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 
    0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 
    0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 
    0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 
    0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 
    0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 
    0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 
    0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 
    0.06, 0.06, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 
    0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 
    0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 
    0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03)), class = "data.frame", row.names = c(NA, 
-140L))

当我使用 geom_bar 时,丢失的色带不会按照 y 轴上的距离取其原始位置。它只是在前一个上放样(我想要空带来丢失数据)。

ggplot(aa, aes(x = local_timestamp, y = `Distance along Route (mi)`,
               group = source_id, fill = avg_speed_mph))+
  geom_bar(stat="identity",aes(height = aa$`Length (mi)`))+ 
  scale_fill_gradient(limits = c(0,80), low = "gray", high = "black") + 
  theme_bw()+ 
  labs(y = "Distance Along Route", x = "Time", fill = "Average Speed")

使用 geom_bar() 的轮廓 如果我使用 geom_tile(),颜色带的开始不会从它的起始距离开始(我认为 -h/2 到 h/2)。

ggplot(aa, aes(x = local_timestamp, y = `Distance along Route (mi)`,
                          group = source_id, fill = avg_speed_mph)) + geom_tile(height = aa$`Length (mi)`)+ scale_fill_gradient(limits = c(2,76), low = "gray", high = "black")+
        theme_bw()+
        labs(y = "Distance Along Route", x = "Time", fill = "Average Speed")

使用 geom_tile() 的轮廓 我需要一个具有完全针对时间和距离值的色带的图。

4

0 回答 0