I'm trying to plot with ggplot and it was working perfectly fine but when I add in tooltip modifiers it breaks the ggplot. Here's the code for ggplot:
ggplot() +
# mean in blue, must have label in both geom_point and geom_line to show up??
geom_point(data = sumsd, aes(x = Year, y = Mean, text = paste("Income Required Mean:", round(meanir, 2))), color = "blue") +
geom_line(data = sumsd, aes(x = Year, y = Mean, text = paste("Income Required Mean:", round(meanir, 2))), color = "blue") +
# median in red
geom_point(data = sumsd, aes(x = Year, y = Median, text = paste("Income Required Median:", round(medianir, 2))), color = "red") +
geom_line(data = sumsd, aes(x = Year, y = Median, text = paste("Income Required Median:", round(medianir, 2))), color = "red") +
# BMR Mean in green
geom_point(data = sumbmr, aes(x = sumbmr$year, y = BMRMean, text = paste("Income Required Mean:", round(meanir, 2))), color = "green") +
geom_line(data = sumbmr, aes(x = sumbmr$year, y = BMRMean, text = paste("Income Required Mean:", round(meanir, 2))), color = "green") +
# BMR Median in Orange
geom_point(data = sumbmr, aes(x = sumbmr$year, y = BMRMedian, text = paste("Income Required Median:", round(medianir, 2))), color = "orange") +
geom_line(data = sumbmr, aes(x = sumbmr$year, y = BMRMedian, text = paste("Income Required Median:", round(medianir, 2))), color = "orange") +
xlab('Date') +
ylab('Affordability (%)')
When you plot this, not only do lines not work, but there is double of everything.
The moment you remove the "text =" portion, it works perfectly fine.
I'm trying to use solutions from other SO questions but the issue is my situation is unique since I'm plotting from two different data frames. I am thinking one solution is combining the data frames and using group but I am unsure how to use group correctly in this situation.
dput(sumsd) looks like this:
structure(list(year = c(1998, 1999, 2000, 2001, 2002, 2003, 2004,
2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
2016, 2017), Mean = c(93.7169512394609, 99.2423930840141, 121.481331406585,
126.775399601736, 112.466413730831, 103.986381539689, 122.373342680171,
150.048597477934, 160.564554366089, 155.500390025812, 125.850336953549,
103.448554350041, 107.25827986955, 100.606707776528, 105.998796554414,
122.709555550239, 136.83930367275, 152.282460118587, 160.071088660241,
154.14808421977), Median = c(85.4917695475731, 91.2054228882549,
109.098207512634, 110.406161651376, 104.009081592691, 97.4604892752744,
115.880140364587, 136.170512471096, 143.124069920242, 146.579045544699,
116.696166130696, 96.5748315397845, 99.3163207081357, 89.8676706522828,
97.8773119273362, 117.628144815457, 124.999783492508, 139.339479286517,
147.437503023617, 142.066431589906), meanir = c(75858.7132682999,
86152.0494420347, 111134.855904496, 115687.697423248, 113855.557186688,
115393.107622111, 135534.013451155, 164724.526543259, 177908.848180357,
174125.940380747, 140992.212450383, 116111.239666518, 117619.195974371,
110479.184428429, 118090.047869615, 135916.239598085, 152767.827229155,
172914.018516023, 181629.609510369, 184693.920051047), medianir = c(70291.4599746587,
80490.2933468334, 98809.4765667835, 99746.8318817087, 103924.176219962,
107999.634110941, 129599.560933129, 150791.941966219, 160980.586693667,
163018.315639156, 129905.220274953, 105961.905165452, 107490.201874569,
97301.5571471213, 108610.952794588, 129799.258369787, 138565.568293283,
158535.311959079, 165056.044584646, 169131.502475625)), class = c("tbl_df",
"tbl", "data.frame"), .Names = c("year", "Mean", "Median", "meanir",
"medianir"), row.names = c(NA, -20L), na.action = structure(11492L, .Names = "11492", class = "omit"))
dput(summer) looks like this:
structure(list(year = c(1998, 1999, 2000, 2001, 2002, 2003, 2004,
2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
2016, 2017), Mean = c(35.5975039642586, 40.4455188619846, 35.7695849667396,
37.1825436379744, 45.4697841345466, 35.71278205506, 32.8176166454225,
34.8607395091664, 47.9769662900546, 40.1449272824002, 62.0633765342318,
73.5812934677564, 61.3025427925627, 65.1843431889166, 63.0657096256395,
61.9985219499782, 73.9313965758768, 59.0247038824931, 61.6204148196363,
67.2245622451913), Median = c(33.3902476171523, 33.398651550511,
32.6622247899155, 33.1914067114214, 33.680900044327, 29.3944814757642,
29.4066908397235, 34.1874903650837, 37.0654203449693, 36.8544480044624,
65.1026513371994, 80.6104753594162, 63.4793583608239, 65.3828352952037,
65.2586468365118, 60.3592697123653, 68.8351812023184, 50.305834291634,
59.2415687112354, 69.2928997343465), meanir = c(28551.9072419551,
35059.1694067028, 33357.0651434246, 32833.0548035115, 45225.3426313333,
39719.5872679614, 36100.1651757794, 38597.8771598172, 52338.4936958301,
45002.9992336611, 62802.4596860642, 73434.1474408398, 59915.0792794635,
64350.8687798733, 61140.2935901313, 63757.2783380522, 82978.0660506505,
64859.9174437382, 67598.7321700551, 72403.9056481494), medianir = c(26337.6466204512,
29791.5971830558, 30686.1601901257, 29831.1291245983, 33724.4140478504,
32395.8147753913, 33497.2072704284, 38716.8499642996, 39495.2624214766,
41977.2162770827, 62018.1785695242, 76539.6463537657, 63807.6102430058,
66778.9247048712, 61669.4212605037, 61720.3644841409, 78437.6889800418,
57270.3720129811, 59623.9489450214, 62814.0136091851)), class = c("tbl_df",
"tbl", "data.frame"), .Names = c("year", "Mean", "Median", "meanir",
"medianir"), row.names = c(NA, -20L), na.action = structure(c(12L,
13L, 14L, 15L, 16L, 17L, 18L, 61L, 62L, 63L, 64L, 65L, 66L, 67L,
68L, 69L, 70L, 71L, 72L, 73L, 74L, 75L, 76L, 77L, 78L, 79L, 80L,
81L, 82L, 83L, 84L, 85L, 86L, 87L, 88L, 89L, 90L, 91L, 92L, 93L,
94L, 95L, 96L, 97L, 98L, 99L, 100L, 101L, 102L, 103L, 104L, 105L,
106L, 107L, 108L, 109L, 110L, 111L, 112L, 113L, 114L, 115L, 116L,
117L, 118L, 250L, 251L, 252L, 253L, 254L, 255L, 256L, 257L, 258L,
259L, 260L, 261L, 262L, 263L, 264L, 265L, 266L, 267L, 268L, 269L,
270L, 271L, 272L, 273L, 274L, 275L, 276L, 277L, 278L, 279L, 280L,
281L, 282L, 283L, 284L, 285L, 286L, 287L, 288L, 289L, 290L, 291L,
292L, 293L, 294L, 295L, 296L, 297L, 298L, 299L, 300L, 301L, 302L,
303L, 304L, 305L, 306L, 307L, 308L, 309L, 310L, 311L, 312L), .Names = c("12",
"13", "14", "15", "16", "17", "18", "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", "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"), class = "omit"))
Please help!
ggplotly
function, sometimes using the development versions has helped, but it is far from perfect. If you really want the interactivity, you may be better off fully jumping intoplotly
. Quite happy to offer a solution usingplot_ly
if that would be acceptable to you. – Kevin Arseneau