I have a code that uses the plotly and ggplot2. When I hover the info the information inside is duplicated meaning that it show 2 same TrendName Info lines for all of the graphs. for example this is what it is showing in the hover info
Month_Names: 2011-05 Actual_volume: 56488 TrendName: 2010-11 - 2017-01 TrendName: 2010-11 - 2017-01
How do I show only 1 TrendName? Thanks
Here is my code
library(ggplot2)
library(dplyr)
library(tidyr)
library(plotly)
Month_Names <- c("2010-11","2010-12",
"2011-01","2011-02","2011-03","2011-04","2011-05","2011-06","2011-07","2011-08","2011-09","2011-10","2011-11","2011-12",
"2012-01","2012-02","2012-03","2012-04","2012-05","2012-06","2012-07","2012-08","2012-09","2012-10","2012-11","2012-12",
"2013-01","2013-02","2013-03","2013-04","2013-05","2013-06","2013-07","2013-08","2013-09","2013-10","2013-11","2013-12",
"2014-01","2014-02","2014-03","2014-04","2014-05","2014-06","2014-07","2014-08","2014-09","2014-10","2014-11","2014-12",
"2015-01","2015-02","2015-03","2015-04","2015-05","2015-06","2015-07","2015-08","2015-09","2015-10","2015-11","2015-12",
"2016-01","2016-02","2016-03","2016-04","2016-05","2016-06","2016-07","2016-08","2016-09","2016-10","2016-11","2016-12",
"2017-01")
Actual_volume <- c(54447,57156,
52033,49547,58718,53109,56488,60095,54683,60863,56692,55283,55504,56633,
53267,52587,54680,55569,60013,56985,59709,61281,54188,59832,56489,55819,
59295,52692,56663,59698,61232,57694,63111,60473,58984,64050,54957,63238,
59460,54430,58901,61088,60496,62984,66895,62720,65591,67815,58289,72002,
61054,60329,69283,68002,63196,72267,71058,69539,71379,70925,68704,76956,
65863,70494,77348,70214,74770,77480,69721,83034,76761,77927,79768,81836,
75381)
df_data <- data.frame(Month_Names, Actual_volume)
trendDateRange1 <- c("2010-11-01", "2017-01-31")
trendDateRange2 <- c("2012-01-01", "2012-12-31")
trendDateRange3 <- c("2013-01-01", "2013-12-31")
numoftrends <- 3
trends <- data_frame(Start = c("2010-11", "2012-01", "2013-01"),
End = c("2017-01", "2012-12", "2013-12"))
combined_data <- df_data %>%
crossing(trends) %>%
mutate(Month_Names = as.character(Month_Names),
TrendName = paste(Start, End, sep = "-")) %>%
filter(Month_Names >= Start,
Month_Names <= End)
p <- ggplot(combined_data, aes(Month_Names, y = Actual_volume,
group = TrendName,
color = TrendName)) +
geom_line() +
labs(x=" ",y=" ") +
labs(title = "New plot title") +
theme(plot.title = element_text(family = "Arial", color="blue",
size=18),
legend.title = element_blank(),
axis.text.x = element_text(angle = 45, hjust = 1)
)
ggplotly(p) %>%
layout(title = "New plot title",
legend = list(orientation = "h",x = 0.25, y = -.75),
annotations = list()
)
You've 4 variables in the aes
when you build your ggplot
object. When you use ggplotly
it will use all mapped aesthetics in the tooltip.
To remove the duplicate caused by group
and color
you need to specify what items to use in the tooltip as a character vector. (Note the spelling on colour, and you can also use group
instead).
ggplotly(p, tooltip = c("x","y","colour")) %>%
layout(title = "New plot title",
legend = list(orientation = "h",x = 0.25, y = -.75)
)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With