如何用基础R图得到10个指数?

时间:2017-08-09 09:31:38

标签: r

我正在尝试为我的图表创建漂亮的x10 ^符号,并且我已尝试按照此帖子R scientific notation in plots,其中包sfmisc正常工作。但是,无论我如何格式化数据,eaxis(2)(用于格式化轴)对我的情节都没有影响。

我错过了什么?

test <- structure(list(y = c(57074, 55293, 52530, 53874, 56858, 53661, 
55945, 54193, 55163, 57583, 54338, 54641, 54614, 54193, 52836, 
55719, 55002, 55507, 53366, 51949, 53235, 55353, 55474, 54739, 
55133, 53775, 52727, 53495, 52972, 55992, 53175, 54166, 55292, 
54872, 53192, 54397, 53942, 55366, 53018, 52682, 53622, 55850, 
55789, 54557, 54848, 56765, 52820, 53870, 55348, 53204, 51285, 
53042, 54367, 52928, 52964, 52627, 56657, 55148, 58890, 53701, 
54805, 54079, 54131, 57278, 56781, 55465, 56775, 52513, 55431, 
55771, 54583, 57358, 54072, 55033, 53156, 53696, 52911, 54076, 
54462, 56536, 53085, 52569, 53266, 54299, 55848, 54259, 53627, 
52437, 52220, 52433, 50191, 52412, 50372, 50910, 50455, 50815, 
50701, 50746, 49721, 51859, 49399, 51059, 52265, 52060, 52218, 
52301, 50035, 49646, 52039, 48850, 51266, 52174, 49523, 51270, 
55213, 54284, 54485, 54310, 54911, 54777, 57283, 55636, 55980, 
56536, 55678, 55285, 55472, 51623, 53241, 54765, 53099, 53019, 
51083, 54019, 54929, 52155, 53065, 52312, 52634, 53296, 56518, 
54127, 54694, 55895, 55742, 53929, 55745, 53512, 54497, 51416, 
52731, 53866, 53657, 53252, 54001, 53491, 52997, 52558, 52332, 
54119, 55268, 51572, 51772, 59194, 54984, 55794, 54978, 52114, 
54799, 55598, 53137, 52842, 53786, 53036, 53468, 54336, 52490, 
53004, 57766, 54496, 52993, 56228, 56760, 54302, 54288, 54655, 
53952, 57342, 54309, 52621, 55790, 57443, 56504, 53485, 51602, 
54750, 55084, 54772, 53335, 51547, 55785, 52702, 53834, 53291, 
49956, 52136, 53654, 57252, 56039, 52538, 55018, 55865, 54330, 
54124, 51033, 55412, 54307, 54392, 54136, 53871, 53653, 54696, 
53771, 52851, 54716, 54913, 56345, 54308, 55249, 55373, 55690, 
54914, 56746, 53988, 57099, 54371, 56105, 57137, 59156, 55028, 
55581, 55535, 56482, 55476, 53783, 56046, 53198, 53563, 55850, 
55683, 54875, 55898, 53729, 54716, 54212, 54092, 55754, 56013, 
55246, 53031, 54555, 55019, 53641, 54781, 55561, 54474, 51939, 
53266, 54739, 56521, 54364, 54790, 55421, 55069, 57094, 54506, 
58930, 54327, 54123, 54634, 57260, 55882, 55877, 54139, 54970, 
53891, 53422, 53744, 55637, 57497, 57123, 53079, 53758, 56498, 
56829, 54675, 54230, 59734, 54357, 55031, 52837, 54500, 55159, 
55749, 56107, 54042, 56369, 53032, 54262, 52873, 54448, 57216, 
51369, 57130, 54384, 56405, 55455, 55829, 54439, 54263, 56004, 
55406, 56198, 55726, 57043, 56563, 56367, 53822, 53942, 54641, 
56275, 57232, 52531, 58216, 52519, 54866, 53658, 55304, 55083, 
56328, 57085, 57240, 53078, 54329, 54543, 55873, 55025, 54464, 
55384, 56595, 52406, 52001, 57799, 57266, 54401, 51738, 54082, 
52939, 55056, 56213, 56398, 53303, 53542, 54507, 57726, 53327, 
54101, 53053, 55762, 54932, 56123, 54218, 52915, 54611, 54422, 
53886, 54051, 52986, 55194, 55142, 53504, 53295, 54768, 55053, 
49884, 54736, 55189, 54206, 53849, 53789, 54086, 55643, 51360, 
54165, 51264, 53291, 57359, 56053, 55976, 57091, 55735, 53533, 
56725, 52441, 54994, 54917, 54974, 54096, 55083, 52477, 56169, 
56359, 54426, 55544, 51978, 54035, 56876, 57854, 55146, 56639, 
51805, 55647, 56116, 56271, 53695, 56423, 54165, 54180, 56357, 
54237, 56700, 53289, 56073, 55123, 55444, 55155, 52194, 54319, 
57223, 56239, 54243, 53742, 54085, 57219, 53422, 53783, 53100, 
55414, 54684, 57014, 60754, 55931, 58489, 55270, 53538, 55047, 
56150, 54381, 54541, 54766, 56071, 53033, 54239, 56986, 55029, 
54969, 56272, 56499, 53772, 55771, 53209, 58113, 56394, 54774, 
53949, 56244, 53717, 54025, 56384, 55484, 56039, 56903, 55552, 
53577, 54915, 53726, 53180, 55989, 54755, 55858, 56673, 53346, 
55448, 53865, 54942, 54082, 52907, 54950, 52756, 55881, 55814, 
52827, 53975, 54206, 55546, 56302, 53321, 55201, 55058, 53752, 
53509, 54106, 53114, 53601, 51200, 53728, 58390, 54606, 50244, 
54820, 51741, 54901, 56244, 54045, 54321, 48708, 48849, 50568, 
51046, 49521, 55125, 55263, 51129, 52098, 53514, 53308, 53484, 
56802, 52715, 52036, 54830, 55266, 55201, 54889, 52897, 55511, 
53511, 54425, 54776, 55302, 54407, 56235, 55209, 54099, 55264, 
53536, 54010, 54778, 56237, 55288, 54575, 54293, 57440, 52406, 
55186, 55728, 54548, 53119, 53555, 53402, 54795, 57850, 55597, 
55913, 52279, 53603, 55519, 55947, 53623, 51781, 52208, 56492, 
55805, 54583, 52270, 51461, 52020, 54355, 51711, 53720, 52368, 
54067, 57222, 55416, 53904, 52201, 54070, 54909, 54515, 55301, 
54601, 54641, 55289, 53188, 56281, 56059, 56244, 54388, 54634, 
54453, 52560, 53829, 49529, 49866, 52235, 50962, 52210, 49999, 
52891, 53887, 54851, 53912, 52974, 55562, 51006, 52187, 55993, 
54228, 50763, 52544, 55946, 53833, 51390, 55123, 54710, 52034, 
52058, 51769, 52550, 54152, 53859, 53770, 55579, 55697, 53553, 
53328, 58090, 55302, 55555, 54815, 55887, 57412, 52425, 53808, 
53989, 54318, 55453, 53097, 51731, 49651, 56463, 54621, 55636, 
53732, 53388, 55845, 55520, 56869, 54371, 55273, 55443, 56710, 
54771, 56720, 56277, 53507, 55654, 54104, 58184, 55087, 54472, 
56111, 56677, 54988, 54142, 53161, 55053, 53725, 54838, 53708, 
54175, 55121, 51161, 56567, 56086, 56392, 56494, 55197, 54527, 
55227), x = structure(c("  1", "  2", "  3", "  4", "  5", "  6", 
"  7", "  8", "  9", " 10", " 11", " 12", " 13", " 14", " 15", 
" 16", " 17", " 18", " 19", " 20", " 21", " 22", " 23", " 24", 
" 25", " 26", " 27", " 28", " 29", " 30", " 31", " 32", " 33", 
" 34", " 35", " 36", " 37", " 38", " 39", " 40", " 41", " 42", 
" 43", " 44", " 45", " 46", " 47", " 48", " 49", " 50", " 51", 
" 52", " 53", " 54", " 55", " 56", " 57", " 58", " 59", " 60", 
" 61", " 62", " 63", " 64", " 65", " 66", " 67", " 68", " 69", 
" 70", " 71", " 72", " 73", " 74", " 75", " 76", " 77", " 78", 
" 79", " 80", " 81", " 82", " 83", " 84", " 85", " 86", " 87", 
" 88", " 89", " 90", " 91", " 92", " 93", " 94", " 95", " 96", 
" 97", " 98", " 99", "100", "101", "102", "103", "104", "105", 
"106", "107", "108", "109", "110", "111", "112", "113", "114", 
"115", "116", "117", "118", "119", "120", "121", "122", "123", 
"124", "125", "126", "127", "128", "129", "130", "131", "132", 
"133", "134", "135", "136", "137", "138", "139", "140", "141", 
"142", "143", "144", "145", "146", "147", "148", "149", "150", 
"151", "152", "153", "154", "155", "156", "157", "158", "159", 
"160", "161", "162", "163", "164", "165", "166", "167", "168", 
"169", "170", "171", "172", "173", "174", "175", "176", "177", 
"178", "179", "180", "181", "182", "183", "184", "185", "186", 
"187", "188", "189", "190", "191", "192", "193", "194", "195", 
"196", "197", "198", "199", "200", "201", "202", "203", "204", 
"205", "206", "207", "208", "209", "210", "211", "212", "213", 
"214", "215", "216", "217", "218", "219", "220", "221", "222", 
"223", "224", "225", "226", "227", "228", "229", "230", "231", 
"232", "233", "234", "235", "236", "237", "238", "239", "240", 
"241", "242", "243", "244", "245", "246", "247", "248", "249", 
"250", "251", "252", "253", "254", "255", "256", "257", "258", 
"259", "260", "261", "262", "263", "264", "265", "266", "267", 
"268", "269", "270", "271", "272", "273", "274", "275", "276", 
"277", "278", "279", "280", "281", "282", "283", "284", "285", 
"286", "287", "288", "289", "290", "291", "292", "293", "294", 
"295", "296", "297", "298", "299", "300", "301", "302", "303", 
"304", "305", "306", "307", "308", "309", "310", "311", "312", 
"313", "314", "315", "316", "317", "318", "319", "320", "321", 
"322", "323", "324", "325", "326", "327", "328", "329", "330", 
"331", "332", "333", "334", "335", "336", "337", "338", "339", 
"340", "341", "342", "343", "344", "345", "346", "347", "348", 
"349", "350", "351", "352", "353", "354", "355", "356", "357", 
"358", "359", "360", "361", "362", "363", "364", "365", "366", 
"367", "368", "369", "370", "371", "372", "373", "374", "375", 
"376", "377", "378", "379", "380", "381", "382", "383", "384", 
"385", "386", "387", "388", "389", "390", "391", "392", "393", 
"394", "395", "396", "397", "398", "399", "400", "401", "402", 
"403", "404", "405", "406", "407", "408", "409", "410", "411", 
"412", "413", "414", "415", "416", "417", "418", "419", "420", 
"421", "422", "423", "424", "425", "426", "427", "428", "429", 
"430", "431", "432", "433", "434", "435", "436", "437", "438", 
"439", "440", "441", "442", "443", "444", "445", "446", "447", 
"448", "449", "450", "451", "452", "453", "454", "455", "456", 
"457", "458", "459", "460", "461", "462", "463", "464", "465", 
"466", "467", "468", "469", "470", "471", "472", "473", "474", 
"475", "476", "477", "478", "479", "480", "481", "482", "483", 
"484", "485", "486", "487", "488", "489", "490", "491", "492", 
"493", "494", "495", "496", "497", "498", "499", "500", "501", 
"502", "503", "504", "505", "506", "507", "508", "509", "510", 
"511", "512", "513", "514", "515", "516", "517", "518", "519", 
"520", "521", "522", "523", "524", "525", "526", "527", "528", 
"529", "530", "531", "532", "533", "534", "535", "536", "537", 
"538", "539", "540", "541", "542", "543", "544", "545", "546", 
"547", "548", "549", "550", "551", "552", "553", "554", "555", 
"556", "557", "558", "559", "560", "561", "562", "563", "564", 
"565", "566", "567", "568", "569", "570", "571", "572", "573", 
"574", "575", "576", "577", "578", "579", "580", "581", "582", 
"583", "584", "585", "586", "587", "588", "589", "590", "591", 
"592", "593", "594", "595", "596", "597", "598", "599", "600", 
"601", "602", "603", "604", "605", "606", "607", "608", "609", 
"610", "611", "612", "613", "614", "615", "616", "617", "618", 
"619", "620", "621", "622", "623", "624", "625", "626", "627", 
"628", "629", "630", "631", "632", "633", "634", "635", "636", 
"637", "638", "639", "640", "641", "642", "643", "644", "645", 
"646", "647", "648", "649", "650", "651", "652", "653", "654", 
"655", "656", "657", "658", "659", "660", "661", "662", "663", 
"664", "665", "666", "667", "668", "669", "670", "671", "672", 
"673", "674", "675", "676", "677", "678", "679", "680", "681", 
"682", "683", "684", "685", "686", "687", "688", "689", "690", 
"691", "692", "693", "694", "695", "696", "697", "698", "699", 
"700"), class = "AsIs")), .Names = c("y", "x"), row.names = c(NA, 
-700L), class = "data.frame")

plot(x = test$x, y = test$y, type = "l", 
xaxt="n", yaxt="n")

require("sfsmisc")
eaxis(2)

1 个答案:

答案 0 :(得分:1)

像@DaveRGP建议的ggplot2可以轻松完成这样的事情,例如:

library(ggplot2)
library(scales)

test$x <- as.numeric(as.character(test$x))
test$y <- as.numeric(as.character(test$y))
ggplot(data = test, aes(x = x, y = y)) + geom_line() +
  scale_y_continuous(trans = "log10", breaks = trans_breaks("log10", function(x) 10 ^ (x)),
                     labels = trans_format("log10", math_format(10 ^ .x)))

enter image description here