R的彩虹传奇

时间:2017-04-02 13:44:56

标签: r plot

enter image description here我在一张图中绘制了0-100岁的死亡率。它的颜色非常丰富,但对于读者来说,没有解释谁是0岁,40岁或100岁。我见过彩虹传说是在线图片,但没有得到如何自己写出来的答案。我用来绘制的线是

plot(m, series = "total", datatype="rate", plot.type="time", xlab="Years", main="Total death rate")

我可以改变什么来获得彩虹传奇?是否要求在图形区域中写出网格线?

数据摘录

structure(c(0.107446, 0.02901, 0.015211, 0.010825, 0.008799, 
0.006939, 0.110958, 0.028299, 0.014543, 0.010939, 0.00893, 0.007335, 
0.091162, 0.026333, 0.013556, 0.009593, 0.007193, 0.005984, 0.097073, 
0.026088, 0.012508, 0.008976, 0.007057, 0.005734, 0.089595, 0.022413, 
0.011188, 0.008234, 0.006767, 0.005522, 0.093491, 0.02269, 0.011209, 
0.009104, 0.00724, 0.006003, 0.08592, 0.019631, 0.009459, 0.006521, 
0.005931, 0.004634, 0.080883, 0.019495, 0.009131, 0.006662, 0.004753, 
0.004184, 0.09061, 0.021713, 0.008999, 0.006332, 0.004717, 0.004221, 
0.076158, 0.016583, 0.008261, 0.005645, 0.004305, 0.003866, 0.078229, 
0.019572, 0.008195, 0.005844, 0.004747, 0.003715, 0.07538, 0.01746, 
0.008253, 0.006093, 0.004857, 0.003771, 0.074146, 0.01849, 0.008344, 
0.005719, 0.004848, 0.004174, 0.072209, 0.015411, 0.007567, 0.005166, 
0.004282, 0.003863, 0.076099, 0.016082, 0.006845, 0.005483, 0.004198, 
0.003673, 0.077503, 0.017572, 0.007786, 0.005492, 0.004817, 0.003448, 
0.072559, 0.018363, 0.007551, 0.005644, 0.004607, 0.003867, 0.067097, 
0.014814, 0.007276, 0.005583, 0.004591, 0.003869, 0.066543, 0.019021, 
0.011272, 0.009122, 0.007382, 0.00635, 0.071861, 0.016772, 0.009663, 
0.007277, 0.006925, 0.005022, 0.072476, 0.014029, 0.007611, 0.005485, 
0.004887, 0.003871, 0.064407, 0.012097, 0.005361, 0.004211, 0.003923, 
0.002647, 0.062224, 0.011398, 0.005304, 0.003305, 0.003032, 0.002257, 
0.057591, 0.010665, 0.004426, 0.002968, 0.002496, 0.002317, 0.061385, 
0.012738, 0.005614, 0.003438, 0.003094, 0.002173, 0.057092, 0.009833, 
0.004379, 0.003359, 0.002478, 0.002311, 0.056902, 0.009439, 0.004451, 
0.002798, 0.002614, 0.002104, 0.060825, 0.011348, 0.0047, 0.003323, 
0.002893, 0.002541, 0.061088, 0.011606, 0.004853, 0.002955, 0.002427, 
0.002494, 0.059242, 0.008986, 0.003939, 0.002715, 0.002199, 0.002218, 
0.057243, 0.007084, 0.003793, 0.002429, 0.00217, 0.001911, 0.057835, 
0.008646, 0.003879, 0.002627, 0.002119, 0.001695, 0.05217, 0.007877, 
0.003303, 0.002461, 0.001783, 0.001602, 0.049842, 0.007063, 0.003305, 
0.002104, 0.001544, 0.001379, 0.048754, 0.006322, 0.003006, 0.00226, 
0.001961, 0.001548, 0.047834, 0.006098, 0.002681, 0.002307, 0.001882, 
0.001623, 0.045679, 0.006773, 0.00329, 0.002311, 0.001794, 0.00182, 
0.046924, 0.006226, 0.003433, 0.002487, 0.001901, 0.001666, 0.044641, 
0.005054, 0.003138, 0.001933, 0.001878, 0.001403, 0.041354, 0.004579, 
0.0025, 0.001735, 0.001648, 0.001228, 0.040073, 0.004021, 0.002109, 
0.001469, 0.001155, 0.001245, 0.038778, 0.004742, 0.002258, 0.001759, 
0.001354, 0.001152, 0.031958, 0.002932, 0.001877, 0.001526, 0.001338, 
0.001155, 0.030943, 0.003213, 0.00218, 0.001858, 0.001429, 0.001144, 
0.032905, 0.003633, 0.002685, 0.001904, 0.001783, 0.001572, 0.030931, 
0.003345, 0.002049, 0.00173, 0.00147, 0.001261, 0.026955, 0.002292, 
0.001541, 0.001232, 0.001046, 0.001022, 0.025469, 0.002239, 0.001559, 
0.001314, 0.000903, 0.000907, 0.023388, 0.001881, 0.001435, 0.001149, 
0.000908, 0.000592, 0.023167, 0.002012, 0.001074, 0.001072, 0.00101, 
0.000708, 0.020801, 0.00185, 0.00138, 0.001153, 0.000802, 0.000886, 
0.021411, 0.001977, 0.001321, 0.000922, 0.000752, 0.000671, 0.020338, 
0.001702, 0.001157, 0.000908, 0.000866, 0.000721, 0.019017, 0.001688, 
0.001052, 0.000873, 0.000653, 0.000666, 0.018535, 0.001483, 0.001013, 
0.000808, 0.000684, 0.00048, 0.017848, 0.001449, 0.001057, 0.000808, 
0.000726, 0.00064, 0.017602, 0.001388, 0.001117, 0.000751, 0.000649, 
0.000526, 0.017921, 0.001424, 0.000889, 0.000784, 0.000703, 5e-04, 
0.01597, 0.001387, 0.00081, 0.00084, 0.000623, 0.000619, 0.016763, 
0.001251, 0.000897, 0.000707, 0.000544, 0.000613, 0.016616, 0.001419, 
0.000669, 0.000624, 0.000754, 0.000573, 0.01613, 0.001077, 0.000762, 
0.000688, 0.00068, 0.000546, 0.01582, 0.00105, 0.00088, 0.000703, 
0.000439, 0.000556, 0.015948, 0.000929, 0.000735, 0.000528, 0.000491, 
0.000534, 0.014965, 8e-04, 0.000593, 0.000656, 0.000517, 0.000519, 
0.013486, 0.000925, 0.00065, 6e-04, 0.00039, 0.000564, 0.012713, 
0.00092, 0.000597, 0.000437, 0.000664, 0.000505, 0.012879, 0.000723, 
0.000483, 0.000443, 0.000464, 0.00035, 0.012784, 0.000719, 0.000518, 
0.000508, 0.000426, 0.000391, 0.011642, 0.000668, 0.000535, 0.000449, 
0.000579, 0.00039, 0.011299, 0.000668, 0.000467, 0.000547, 0.000446, 
0.000511, 0.011514, 0.000598, 0.000458, 0.000355, 0.000285, 0.000356, 
0.010822, 0.000602, 0.00046, 0.000486, 0.000364, 4e-04, 0.009783, 
0.000588, 0.000414, 0.000388, 0.000298, 0.000391, 0.009622, 0.000725, 
0.000436, 0.000234, 0.00036, 0.000507, 0.008408, 0.000701, 0.000397, 
0.000311, 0.000351, 0.000378, 0.008115, 0.000522, 0.000407, 0.00027, 
0.000301, 0.000332, 0.007953, 0.000501, 0.000333, 0.000379, 0.000349, 
0.000238, 0.007689, 0.000531, 0.000274, 0.000314, 0.000315, 0.000393, 
0.007626, 0.000673, 0.000387, 0.000264, 0.000369, 0.000324, 0.006958, 
0.000567, 0.000283, 0.000295, 0.000303, 0.000221, 0.006842, 0.000412, 
0.000221, 0.000231, 0.000183, 0.000195, 0.006798, 0.000427, 0.000278, 
0.000294, 0.000315, 0.000183, 0.007002, 0.000352, 0.000271, 0.000237, 
2e-04, 0.000189, 0.006483, 0.000421, 0.00016, 0.000229, 0.000113, 
0.000137, 0.006938, 0.000472, 0.00029, 0.000244, 0.000166, 0.000216, 
0.00605, 0.000569, 0.000256, 0.000236, 0.000233, 0.000166, 0.006215, 
0.000426, 0.000329, 0.000266, 0.000192, 0.000169, 0.006023, 0.00051, 
0.000276, 0.000205, 0.000137, 0.000191, 0.00588, 0.000422, 0.000287, 
0.000157, 0.000285, 0.000168, 0.006158, 0.000392, 0.000282, 0.000266, 
0.000156, 0.000141, 0.006149, 0.000389, 0.000225, 0.000181, 0.000217, 
6.8e-05, 0.005339, 0.000281, 0.000256, 0.000259, 0.000144, 0.000169, 
0.004757, 3e-04, 0.000241, 0.000247, 0.00018, 0.000117, 0.004349, 
0.000324, 0.000161, 0.000127, 0.00022, 0.000136, 0.003988, 0.000261, 
0.000191, 8.8e-05, 0.000166, 0.000138, 0.003805, 0.000352, 0.000131, 
0.000141, 0.000168, 0.00015, 0.003541, 0.000443, 0.000139, 0.000174, 
0.000125, 0.000112, 0.003521, 0.000312, 0.000191, 0.000139, 0.000113, 
0.000125, 0.003343, 0.000233, 0.000172, 8e-05, 8.3e-05, 7.8e-05, 
0.00345, 0.000223, 0.00011, 6.4e-05, 1e-04, 6.5e-05, 0.003661, 
0.000276, 0.000211, 0.000154, 0.000106, 1e-04, 0.003334, 0.00026, 
0.000275, 0.00011, 0.000109, 9.5e-05, 0.003154, 0.000316, 0.000205, 
0.000153, 0.00011, 0.000109, 0.003134, 0.000213, 0.000126, 7.5e-05, 
8.7e-05, 8.7e-05, 0.002427, 0.000415, 0.000141, 0.000198, 8.6e-05, 
0.00013, 0.002857, 0.000293, 0.000137, 0.00015, 0.000114, 0.000107, 
0.002503, 0.000314, 0.000145, 8.8e-05, 0.000109, 0.000113, 0.002501, 
0.000222, 0.00016, 6.7e-05, 9.7e-05, 8.9e-05, 0.002506, 0.000327, 
0.000219, 0.000196, 4.8e-05, 7.7e-05, 0.002578, 0.00025, 0.000126, 
0.000109, 0.000111, 3.8e-05, 0.002061, 0.00026, 4.4e-05, 0.000117, 
0.000108, 5.5e-05, 0.002597, 0.000156, 0.000129, 0.000105, 0.000125, 
6.3e-05, 0.002689, 0.000123, 9.5e-05, 0.000136, 9.6e-05, 7.1e-05, 
0.002183, 0.000217, 4.3e-05, 0.000119, 5.9e-05, 9.5e-05), .Dim = c(6L, 
115L), .Dimnames = list(c("0", "1", "2", "3", "4", "5"), c("1900", 
"1901", "1902", "1903", "1904", "1905", "1906", "1907", "1908", 
"1909", "1910", "1911", "1912", "1913", "1914", "1915", "1916", 
"1917", "1918", "1919", "1920", "1921", "1922", "1923", "1924", 
"1925", "1926", "1927", "1928", "1929", "1930", "1931", "1932", 
"1933", "1934", "1935", "1936", "1937", "1938", "1939", "1940", 
"1941", "1942", "1943", "1944", "1945", "1946", "1947", "1948", 
"1949", "1950", "1951", "1952", "1953", "1954", "1955", "1956", 
"1957", "1958", "1959", "1960", "1961", "1962", "1963", "1964", 
"1965", "1966", "1967", "1968", "1969", "1970", "1971", "1972", 
"1973", "1974", "1975", "1976", "1977", "1978", "1979", "1980", 
"1981", "1982", "1983", "1984", "1985", "1986", "1987", "1988", 
"1989", "1990", "1991", "1992", "1993", "1994", "1995", "1996", 
"1997", "1998", "1999", "2000", "2001", "2002", "2003", "2004", 
"2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", 
"2013", "2014")))

1 个答案:

答案 0 :(得分:4)

我不确定你是如何从数据到情节的。 我怀疑颜色实际上是基于age 没有提供,但由于那不是重点, 我只是弥补了一些价值。另外,因为你使用了 我也做了rainbow调色板,但正如@KonradRudolph所说 您可能希望rainbow出现问题 考虑不同的调色板。

要解决您的问题,请使用SDMTools包 包括legend.gradient函数。函数grid 将添加您想要的背景网格。我用的全部 在下面的例子中。它必须调整到 匹配你实际绘制的方式,但这应该 足够接近,你可以搞清楚。我叫了 您为数据DR提供的数据结构。

library(SDMTools)
age = floor((log(DR[,1])+6)*17)
plot(colnames(DR), log(DR[1,]), type="l", ylim=c(-10,0),
    col=rainbow(102)[age[1]], xlab="Years", ylab="log Death Rate")
for(i in 2:6) { 
    lines(colnames(DR), log(DR[i,]), col=rainbow(102)[age[i]]) }

LegLoc   = cbind(x =c(1900,1903,1903,1900), y =c(-8,-8,-10,-10))
legend.gradient(pnts=LegLoc, cols=rainbow(102), 
    limits=c(1, 100), title = "age")
grid()

gradient.legend Example