Я использую ggplot для построения geom_raster, где ось Y является результатом журнала:
Я хотел бы оставить ось как есть, но измените метки на exp (y_coord), чтобы сделать значения более явными для других пользователей. Если я непосредственно преобразую y_coord, то растр больше не будет работать, потому что между каждым значением y будет большой пробел. Это вообще возможно?
Заранее спасибо!
Вот воспроизводимый код:
testy <- structure(list(x_coord = c(0, 11.1111111111111, 22.2222222222222,
33.3333333333333, 44.4444444444444, 55.5555555555556, 66.6666666666667,
77.7777777777778, 88.8888888888889, 100, 0, 11.1111111111111,
22.2222222222222, 33.3333333333333, 44.4444444444444, 55.5555555555556,
66.6666666666667, 77.7777777777778, 88.8888888888889, 100, 0,
11.1111111111111, 22.2222222222222, 33.3333333333333, 44.4444444444444,
55.5555555555556, 66.6666666666667, 77.7777777777778, 88.8888888888889,
100, 0, 11.1111111111111, 22.2222222222222, 33.3333333333333,
44.4444444444444, 55.5555555555556, 66.6666666666667, 77.7777777777778,
88.8888888888889, 100, 0, 11.1111111111111, 22.2222222222222,
33.3333333333333, 44.4444444444444, 55.5555555555556, 66.6666666666667,
77.7777777777778, 88.8888888888889, 100, 0, 11.1111111111111,
22.2222222222222, 33.3333333333333, 44.4444444444444, 55.5555555555556,
66.6666666666667, 77.7777777777778, 88.8888888888889, 100, 0,
11.1111111111111, 22.2222222222222, 33.3333333333333, 44.4444444444444,
55.5555555555556, 66.6666666666667, 77.7777777777778, 88.8888888888889,
100, 0, 11.1111111111111, 22.2222222222222, 33.3333333333333,
44.4444444444444, 55.5555555555556, 66.6666666666667, 77.7777777777778,
88.8888888888889, 100, 0, 11.1111111111111, 22.2222222222222,
33.3333333333333, 44.4444444444444, 55.5555555555556, 66.6666666666667,
77.7777777777778, 88.8888888888889, 100, 0, 11.1111111111111,
22.2222222222222, 33.3333333333333, 44.4444444444444, 55.5555555555556,
66.6666666666667, 77.7777777777778, 88.8888888888889, 100), y_coord = c(1.27207478413227,
1.27207478413227, 1.27207478413227, 1.27207478413227, 1.27207478413227,
1.27207478413227, 1.27207478413227, 1.27207478413227, 1.27207478413227,
1.27207478413227, 1.65618234735767, 1.65618234735767, 1.65618234735767,
1.65618234735767, 1.65618234735767, 1.65618234735767, 1.65618234735767,
1.65618234735767, 1.65618234735767, 1.65618234735767, 2.04028991058307,
2.04028991058307, 2.04028991058307, 2.04028991058307, 2.04028991058307,
2.04028991058307, 2.04028991058307, 2.04028991058307, 2.04028991058307,
2.04028991058307, 2.42439747380847, 2.42439747380847, 2.42439747380847,
2.42439747380847, 2.42439747380847, 2.42439747380847, 2.42439747380847,
2.42439747380847, 2.42439747380847, 2.42439747380847, 2.80850503703387,
2.80850503703387, 2.80850503703387, 2.80850503703387, 2.80850503703387,
2.80850503703387, 2.80850503703387, 2.80850503703387, 2.80850503703387,
2.80850503703387, 3.19261260025927, 3.19261260025927, 3.19261260025927,
3.19261260025927, 3.19261260025927, 3.19261260025927, 3.19261260025927,
3.19261260025927, 3.19261260025927, 3.19261260025927, 3.57672016348467,
3.57672016348467, 3.57672016348467, 3.57672016348467, 3.57672016348467,
3.57672016348467, 3.57672016348467, 3.57672016348467, 3.57672016348467,
3.57672016348467, 3.96082772671008, 3.96082772671008, 3.96082772671008,
3.96082772671008, 3.96082772671008, 3.96082772671008, 3.96082772671008,
3.96082772671008, 3.96082772671008, 3.96082772671008, 4.34493528993548,
4.34493528993548, 4.34493528993548, 4.34493528993548, 4.34493528993548,
4.34493528993548, 4.34493528993548, 4.34493528993548, 4.34493528993548,
4.34493528993548, 4.72904285316088, 4.72904285316088, 4.72904285316088,
4.72904285316088, 4.72904285316088, 4.72904285316088, 4.72904285316088,
4.72904285316088, 4.72904285316088, 4.72904285316088), k = c(0.351190545556044,
0.402015361073213, 0.48094295327124, 0.50810565286815, 0.511050545698899,
0.699101076383458, 0.694376226699522, 0.787703068039111, 0.703909839507896,
0.684716702388908, 0.3497800990482, 0.40622480657861, 0.50414652717829,
0.529895831755873, 0.531270708380838, 0.747872635061465, 0.741757131973139,
0.850198553369452, 0.779238835857405, 0.752450375256723, 0.348896590167603,
0.409249693296974, 0.526962532021722, 0.552582085470236, 0.550644399465935,
0.799660481113466, 0.799419364330684, 0.923822722948855, 0.872773192018314,
0.836386311967505, 0.348684770158436, 0.411315897626239, 0.549286530004577,
0.576124359291355, 0.568818792288157, 0.855432558708469, 0.870173300097835,
1.00953124004072, 0.985488745721401, 0.938014353449385, 0.349230750359396,
0.412624427796125, 0.57111115861015, 0.600528120932586, 0.585499847866914,
0.91623076813441, 0.956478940336248, 1.10773459897746, 1.11552559911498,
1.05667290331708, 0.350672967408514, 0.413454520686879, 0.592337311702096,
0.625827849207283, 0.600443741054026, 0.982983987710689, 1.05981331564001,
1.21791489755301, 1.25868883639333, 1.18910819505162, 0.352927826321529,
0.414030082837993, 0.612942490950093, 0.652118824592372, 0.613515780206541,
1.05629287029952, 1.18020253916402, 1.33918896692598, 1.41023492272489,
1.33089593863805, 0.355981362559226, 0.414537595656719, 0.632723408860561,
0.679546551936591, 0.624701408172261, 1.13626356686655, 1.31642469466783,
1.4703293290137, 1.56631090115082, 1.47764848653351, 0.359713149263007,
0.415299210716155, 0.653142029397428, 0.708295826452401, 0.634131473438615,
1.22248003170447, 1.46661895293611, 1.61036911297606, 1.72389760304986,
1.62501919380059, 0.363915570276277, 0.41638643535383, 0.669393020235381,
0.73863647666385, 0.642093668470497, 1.31408744224119, 1.62897502489609,
1.75854113809976, 1.87583909078164, 1.77066218075484)), class = "data.frame", row.names = c(NA,
-100L))
g <- ggplot()
g <- g + geom_raster(mapping = aes(x =x_coord, y=y_coord, fill=k), data = testy, interpolate = FALSE)
g <- g + scale_fill_gradientn(name="..",
limits=c(0,2),
breaks=seq(0,2, by=.5),
values = c(0,0.2,0.5,1),#these are percentage, for example, to get color red, you need to reach 1 (100%) of high_f
colours=c("white","darkgreen","yellow","red"))
g <- g + scale_y_continuous(labels = scales::number_format(accuracy = .1,decimal.mark = '.'),
limits=c(min(testy$y_coord),max(testy$y_coord)), breaks=seq(0,max(testy$y_coord),by=(max(testy$y_coord)/10)))
plot(g)