У меня есть ряд фреймов данных, которые выглядят так, как показано ниже:
> head(df_maxima, 10)
t distance_max intesity_max s_n_max
1 4.034 49.706 1979.922 2.251441
2 4.244 49.706 2008.562 2.269629
3 8.068 77.321 2248.527 2.388716
4 8.278 77.321 2255.795 2.389224
5 12.102 99.412 2330.322 2.512899
6 12.312 99.412 2327.884 2.517018
7 16.136 121.504 2348.834 2.541273
8 16.346 121.504 2348.147 2.539562
9 20.170 138.073 2309.776 2.583442
10 20.380 138.073 2307.124 2.579166
> tail(df_maxima, 10)
t distance_max intesity_max s_n_max
139 280.653 331.375 1213.470 1.296612
140 280.863 331.375 1218.176 1.310372
141 284.687 331.375 1226.017 1.304955
142 284.897 331.375 1228.822 1.309873
143 288.721 325.852 1233.728 1.338480
144 288.930 325.852 1239.651 1.339542
145 292.754 325.852 1240.988 1.342206
146 292.965 325.852 1243.669 1.347340
147 296.789 325.852 1244.913 1.347174
148 296.999 325.852 1250.809 1.350358
Я хочу построить свои данные так, чтобы заполнение точек основывалось на значении в столбце s_n_max. Я также хочу, чтобы цвета, которые соответствуют определенным интервалам значений s_n_max, были согласованы для разных фреймов данных и разных графиков, чтобы можно было визуально сравнивать графики. Это кажется проблемой, так как значения s_n_max могут быть разными в разных фреймах данных, поэтому в одном фрейме данных значения s_n_max могут находиться в диапазоне от 1,5 до 2,5, тогда как в другом фрейме данных значения s_n_max могут находиться в диапазоне от 0,5 до 2 или 5 .
Я бы хотел, чтобы цвета шкалы стабильно назначались 4 классам значений s_n_max (s_n_max <1, 1 <= s_n_max <1,5, 1,5 <= s_n_max <2, s_n_max> = 2) и придерживаться этого цветового диапазона присвоения значений, даже если s_n_max в определенном фрейме данных пропускает определенные значения.
В настоящее время я использую этот код для генерации графика ниже
my_pal_quant_2 <- RColorBrewer::brewer.pal(9, "Blues")
ggplot()+
geom_point(data=df_maxima, aes(x=t, y=distance_max, fill=cut(s_n_max, c(0,1,1.5,2,max(s_n_max)))), shape=21, col=my_pal_gray[5], stroke=0.01, size=3.5, alpha=1)+
xlab("Time [s]") +
ylab(paste("Distance from the centre", "\n" , "[\U003BCm]"))+
theme_bw(base_size=18)+
theme(plot.title = element_text(hjust = 0.5))+
labs(fill="signal/noise") +
scale_fill_manual(values =c(my_pal_quant_2[1],my_pal_quant_2[3], my_pal_quant_2[5], my_pal_quant_2[8]))+
guides(aesthetics = "fill", fill = guide_legend(reverse = TRUE, override.aes = list(shape = 21, size= 10)))
![plot 1](https://i.stack.imgur.com/YmKyh.jpg)
Я думал, что введение разрывов и указание цветов в порядке в scale_fill_manual будет работать, но, как вы можете видеть на графике, более светлый цвет (my_pal_quant_2 1 ) это не назначен на первый интервал значений s_n_max, как я хочу (s_n_max <1). </p>
Я думаю, что проблема заключается в том, что я должен установить пределы моей шкалы, но если я Пределы ify в коде графика следующим образом
ggplot()+
geom_point(data=df_maxima, aes(x=t, y=distance_max, fill=cut(s_n_max, c(0,1,1.5,2,max(s_n_max)))), shape=21, col=my_pal_gray[5], stroke=0.01, size=3.5, alpha=1)+
xlab("Time [s]") +
ylab(paste("Distance from the centre", "\n" , "[\U003BCm]"))+
theme_bw(base_size=18)+
theme(plot.title = element_text(hjust = 0.5))+
labs(fill="signal/noise") +
scale_fill_manual(values =c(my_pal_quant_2[1],my_pal_quant_2[3], my_pal_quant_2[5], my_pal_quant_2[8]), limits=c(0,10))+
guides(aesthetics = "fill", fill = guide_legend(reverse = TRUE, override.aes = list(shape = 21, size= 10)))
Результат такой же, как на графике 2 ниже - цветовая заливка точек исчезла, и ограничения, кажется, перезаписывают разрывы. ![plot 2](https://i.stack.imgur.com/KsOST.jpg)
Есть идеи, почему это происходит и как я могу это решить?
Здесь многократно (я надеюсь) версия моих данных
> dput(df_maxima)
structure(list(t = c(4.034, 4.244, 8.068, 8.278, 12.102, 12.312,
16.136, 16.346, 20.17, 20.38, 24.204, 24.414, 28.238, 28.448,
32.272, 32.482, 36.306, 36.516, 40.34, 40.55, 44.374, 44.584,
48.408, 48.618, 52.441, 52.652, 56.476, 56.686, 60.51, 60.72,
64.544, 64.754, 68.578, 68.788, 72.611, 72.822, 76.645, 76.856,
80.68, 80.89, 84.714, 84.924, 88.748, 88.958, 92.781, 92.992,
96.816, 97.026, 98.175, 102, 102.21, 106.034, 106.244, 110.068,
110.278, 114.102, 114.312, 118.136, 118.346, 122.17, 122.38,
126.204, 126.414, 130.238, 130.448, 134.272, 134.482, 138.306,
138.516, 142.34, 142.55, 146.373, 146.584, 150.408, 150.618,
154.442, 154.652, 158.475, 158.686, 162.51, 162.72, 166.544,
166.754, 170.578, 170.788, 174.612, 174.821, 178.645, 178.856,
182.68, 182.89, 186.715, 186.924, 190.749, 190.958, 194.783,
194.993, 198.817, 199.027, 200.175, 204, 204.21, 208.032, 208.242,
212.067, 212.277, 216.102, 216.312, 220.135, 220.346, 224.17,
224.381, 228.205, 228.415, 232.239, 232.449, 236.273, 236.483,
240.307, 240.519, 244.344, 244.554, 248.378, 248.588, 252.411,
252.621, 256.447, 256.657, 260.48, 260.691, 264.515, 264.725,
268.55, 268.76, 272.584, 272.794, 276.618, 276.828, 280.653,
280.863, 284.687, 284.897, 288.721, 288.93, 292.754, 292.965,
296.789, 296.999), distance_max = c(49.706, 49.706, 77.321, 77.321,
99.412, 99.412, 121.504, 121.504, 138.073, 138.073, 154.641,
154.641, 160.164, 165.687, 176.733, 176.733, 182.256, 182.256,
198.825, 198.825, 204.348, 204.348, 209.871, 209.871, 220.916,
220.916, 226.439, 226.439, 231.962, 231.962, 237.485, 237.485,
243.008, 243.008, 248.531, 248.531, 254.054, 254.054, 259.577,
259.577, 265.1, 265.1, 265.1, 265.1, 276.146, 276.146, 281.668,
281.668, 281.668, 287.191, 287.191, 292.714, 292.714, 298.237,
298.237, 298.237, 298.237, 303.76, 303.76, 303.76, 303.76, 309.283,
309.283, 314.806, 314.806, 320.329, 320.329, 320.329, 320.329,
320.329, 320.329, 320.329, 320.329, 314.806, 314.806, 314.806,
314.806, 314.806, 314.806, 314.806, 314.806, 314.806, 314.806,
320.329, 320.329, 320.329, 320.329, 320.329, 320.329, 320.329,
320.329, 320.329, 320.329, 320.329, 320.329, 320.329, 320.329,
320.329, 320.329, 320.329, 320.329, 320.329, 320.329, 320.329,
320.329, 320.329, 320.329, 320.329, 320.329, 320.329, 320.329,
320.329, 320.329, 320.329, 320.329, 320.329, 325.852, 325.852,
331.375, 325.852, 331.375, 331.375, 331.375, 331.375, 331.375,
331.375, 336.898, 336.898, 336.898, 336.898, 336.898, 336.898,
336.898, 336.898, 336.898, 336.898, 336.898, 336.898, 331.375,
331.375, 331.375, 331.375, 325.852, 325.852, 325.852, 325.852,
325.852, 325.852), intesity_max = c(1979.92230381636, 2008.56166900881,
2248.52723179505, 2255.79451634931, 2330.32234953711, 2327.88378516362,
2348.8343415127, 2348.14680159507, 2309.77579065898, 2307.12423239007,
2277.66403763103, 2276.1881433748, 2226.63189556725, 2223.04612992737,
2187.44521152477, 2185.01854317659, 2113.40419145911, 2106.95311432289,
2019.47872850255, 2014.75513931461, 1970.8748703856, 1967.29978877911,
1892.83180486698, 1884.08321387381, 1860.28811848347, 1855.7989916887,
1819.68600120569, 1815.31483959351, 1752.25959566801, 1748.94651654063,
1707.44631517983, 1701.81874724901, 1672.31610178508, 1675.07262830824,
1629.35577737165, 1622.95594527249, 1594.73271800544, 1592.26365342627,
1565.15450424085, 1564.02814029807, 1529.45736225544, 1526.40298637471,
1485.87646781073, 1482.32587007202, 1452.38332379034, 1454.36364601585,
1432.32690458437, 1433.58090017712, 1416.20657028369, 1381.5077909554,
1376.91061677601, 1364.03626066873, 1363.38629589693, 1359.20369261903,
1361.42177642401, 1356.84766849606, 1355.1820901064, 1348.4887820217,
1346.09076725648, 1323.16977340783, 1322.27276997107, 1306.4789364913,
1304.89078683714, 1292.06132553484, 1291.47612962683, 1274.77496623058,
1276.04234959366, 1271.43272691217, 1272.45637976839, 1264.41961088779,
1262.66261404286, 1258.4304721833, 1257.08637663008, 1129.51935239079,
1129.91981422936, 1122.72850546887, 1125.52847921021, 1114.91002191344,
1112.57041678153, 1102.87212456803, 1103.0139141179, 1092.39671914476,
1094.48738639713, 1090.77518264334, 1092.24215670475, 1092.36185428102,
1094.1466007486, 1095.52481154781, 1096.7799517286, 1098.72028552569,
1100.37722731199, 1100.14404983392, 1101.74967173289, 1098.72888304895,
1101.63529496167, 1104.32279375354, 1106.09416482097, 1105.30981381202,
1105.60346635643, 1112.34119682095, 1094.0590377904, 1096.12380055849,
1094.31126456126, 1099.43669810833, 1109.82141151297, 1113.74550644555,
1115.34987618966, 1118.59469793335, 1118.50411722512, 1121.03542726029,
1113.02090147212, 1116.55315296217, 1116.52649565333, 1119.77567158107,
1124.9297007421, 1128.98942805628, 1132.57644869893, 1138.45514326464,
1140.14078719406, 1143.18950233488, 1150.2064714797, 1154.24855514644,
1158.30088658969, 1162.97171227054, 1163.47885128066, 1168.31102965649,
1169.73067354679, 1174.56368305098, 1174.84712548331, 1178.56944753478,
1173.96461080875, 1178.97433433504, 1180.86639684943, 1185.49285459939,
1195.04680018485, 1199.61087517408, 1206.40514550419, 1208.54362602938,
1213.46993848896, 1218.17568229377, 1226.01745918658, 1228.82153926183,
1233.72771711532, 1239.65120994883, 1240.98800664377, 1243.6691625855,
1244.91314782737, 1250.80863046917), s_n_max = c(2.25144148537218,
2.26962887230276, 2.38871589544491, 2.38922391175673, 2.51289889125301,
2.5170179020928, 2.5412726374042, 2.53956231724249, 2.58344241539977,
2.57916599135521, 2.42254325331079, 2.42816796633502, 2.37220684712286,
2.40814651195294, 2.38006310500208, 2.37934846653566, 2.31890961006215,
2.31608616128134, 2.26693619609292, 2.25612224153314, 2.0931881891597,
2.09778079349956, 2.04645183980855, 2.03330490556759, 2.07703705705985,
2.07014084276515, 2.00439268600544, 2.0013108262749, 1.93265951204332,
1.93027690765212, 1.85367117349408, 1.84744199845415, 1.80213581085882,
1.80267095818825, 1.79820713290254, 1.7910497892261, 1.73323861178584,
1.72934330125006, 1.66232486917941, 1.66103765430581, 1.62892610676827,
1.62460389580007, 1.58359519743233, 1.57663763185811, 1.59280956262804,
1.59605224692903, 1.57513185505005, 1.57092109979469, 1.55201236893203,
1.48736244804815, 1.48206570585183, 1.47833613438516, 1.4805189393531,
1.49764205481733, 1.50533350109248, 1.49439604443481, 1.49045472310451,
1.48702165261742, 1.48054230720796, 1.45413011763978, 1.45208336219909,
1.43340417360416, 1.42969476117652, 1.4165296294318, 1.41088732655332,
1.40026099710555, 1.39815883895423, 1.38917223571977, 1.39194103868671,
1.37472546455223, 1.37955200329312, 1.36530070337863, 1.35742463825747,
1.30031621280637, 1.30070123872516, 1.27445331707465, 1.2742742097163,
1.24602906139047, 1.24817213460883, 1.22416583200257, 1.22489897712777,
1.20550590696318, 1.20201181567261, 1.2273211640213, 1.22959755767437,
1.22098561833547, 1.22306831038143, 1.2155481359841, 1.22077186429451,
1.21416022186004, 1.21403825487672, 1.20445566473816, 1.20763840494796,
1.19876531490627, 1.20279973453789, 1.20202981062653, 1.19847842971369,
1.20046173375287, 1.19790682341363, 1.20114073410853, 1.18165803031087,
1.1815533546873, 1.1803104555859, 1.18732518285618, 1.19454698002281,
1.20073805437238, 1.20215081816326, 1.20169452668347, 1.201164773576,
1.20537821528183, 1.20414555027744, 1.2082695928816, 1.20539379029823,
1.20846070398292, 1.21463967864487, 1.22005674610479, 1.22609538571136,
1.23340567583566, 1.22406225441233, 1.23818075625747, 1.23378181088266,
1.23695367736438, 1.24586694689738, 1.2453508392526, 1.25057586814617,
1.25490794009328, 1.24031510917234, 1.24841997032498, 1.25355962979258,
1.25341734386246, 1.24963712427607, 1.25490871831107, 1.2587833687635,
1.26083720278796, 1.27207911317142, 1.27470951063669, 1.28279376500857,
1.2863610194323, 1.29661211997708, 1.31037230050035, 1.30495528634301,
1.30987283392375, 1.33848020532095, 1.3395424299679, 1.34220559786466,
1.34734031085204, 1.34717399611496, 1.35035801558689)), .Names = c("t",
"distance_max", "intesity_max", "s_n_max"), row.names = c(NA,
-148L), class = "data.frame")
>