Похоже, вы наткнулись на ошибку (или две) в ggplotly
(возможно, вам стоит поднять вопрос на github ).
Первая проблема заключается в том, что «пробелы» в наборе данных теряются при преобразовании ggplot через ggplotly
.
Вторая проблема заключается в том, что ggplotly
не может преобразовать объединенную цветовую шкалу, добавленную guides(fill=guide_legend(title='Legend'))
.
В качестве обходного пути для
- первая проблема вы можете расширить набор данных чтобы включить все комбинации
X.Axis
, Y.Axis
и Group
. - во втором вопросе вы можете удалить разделенную шкалу цветов и заменить ее непрерывной шкалой цветов.
Не идеально, но таким образом преобразование через ggplotly
дает вам правильный сюжет и легенду. Попробуйте это:
madeUp=read.table("https://raw.githubusercontent.com/holtzy/R-graph-gallery/master/DATA/madeUp.csv", sep=",", header=T)
theData <- madeUp %>%
group_by(X.Axis, Y.Axis, Group) %>%
dplyr::summarize(statistic=mean(randVals, na.rm = TRUE)) %>%
ungroup()
# Expand the Dataset to includ all Combinations of X.Axis, Y.Axis and Group
theData1 <- tidyr::expand_grid(X.Axis = 0:49, Y.Axis = 0:30, Group = LETTERS[1:6]) %>%
dplyr::left_join(theData)
fig <- ggplot(theData1, aes(X.Axis, Y.Axis)) +
coord_cartesian(xlim = c(0,20), ylim = c(0,20)) +
scale_x_continuous(breaks = seq(0,20)) +
scale_y_continuous(breaks = seq(0,20))+
geom_tile(aes(fill=statistic))+
# Remove the binned colorbar
# guides(fill=guide_legend(title='Legend'))+
labs(fill = "Legend") +
theme(
panel.background = element_rect(fill= 'white', color = 'white'),
panel.grid.major = element_line(color='#E0E0E0'),
panel.grid.minor = element_line(color='#E0E0E0')
)+
ggtitle('Wafer Map')+
facet_wrap(~Group)+
# in case of ggplot2: Set the fill color for NA to "transparent"
scale_fill_gradientn(colors = rainbow(100), na.value = "transparent")
fig
ggplotly(fig)