@@ -781,27 +781,39 @@ verify_guides <- function(p) {
781781 }
782782
783783 isVisibleBar <- function (tr ) {
784- is.colorbar(tr ) && isTRUE (tr $ showscale %|| % TRUE )
784+ is.colorbar(tr ) && (tr $ showscale %|| % TRUE )
785785 }
786786 isBar <- vapply(p $ x $ data , isVisibleBar , logical (1 ))
787787 nGuides <- sum(isBar ) + has_legend(p )
788788
789789 if (nGuides > 1 ) {
790790
791791 # place legend at bottom since its scrolly
792- p $ x $ layout $ legend <- modify_list(
793- list ( y = 1 - ((nGuides - 1 ) / nGuides ), yanchor = " top " ),
794- p $ x $ layout $ legend
795- )
792+ yanchor <- default( " top " )
793+ y <- default( 1 - ((nGuides - 1 ) / nGuides ))
794+ p $ x $ layout $ legend $ yanchor <- p $ x $ layout $ legend $ yanchor % | D | % yanchor
795+ p $ x $ layout $ legend $ y <- p $ x $ layout $ legend [[ " y " ]] % | D | % y
796796
797+ # shrink/position colorbars
797798 idx <- which(isBar )
798799 for (i in seq_along(idx )) {
800+ len <- default(1 / nGuides )
801+ lenmode <- default(" fraction" )
802+ y <- default(1 - ((i - 1 ) / nGuides ))
803+
799804 j <- idx [[i ]]
800- bar <- p $ x $ data [[j ]]$ marker $ colorbar
801- p $ x $ data [[j ]]$ marker $ colorbar $ len <- bar $ len %|| % (1 / nGuides )
802- p $ x $ data [[j ]]$ marker $ colorbar $ lenmode <- bar $ lenmode %|| % " fraction"
803- p $ x $ data [[j ]]$ marker $ colorbar $ y <- bar $ y %|| % (1 - ((i - 1 ) / nGuides ))
804- p $ x $ data [[j ]]$ marker $ colorbar $ yanchor <- bar $ yanchor %|| % " top"
805+ tr <- p $ x $ data [[j ]]
806+ if (inherits(tr , " zcolor" )) {
807+ p $ x $ data [[j ]]$ colorbar $ len <- tr $ colorbar $ len %| D | % len
808+ p $ x $ data [[j ]]$ colorbar $ lenmode <- tr $ colorbar $ lenmode %| D | % " fraction"
809+ p $ x $ data [[j ]]$ colorbar $ y <- tr $ colorbar $ y %| D | % y
810+ p $ x $ data [[j ]]$ colorbar $ yanchor <- tr $ colorbar $ yanchor %| D | % yanchor
811+ } else {
812+ p $ x $ data [[j ]]$ marker $ colorbar $ len <- tr $ marker $ colorbar $ len %| D | % len
813+ p $ x $ data [[j ]]$ marker $ colorbar $ lenmode <- tr $ marker $ colorbar $ lenmode %| D | % " fraction"
814+ p $ x $ data [[j ]]$ marker $ colorbar $ y <- tr $ marker $ colorbar $ y %| D | % y
815+ p $ x $ data [[j ]]$ marker $ colorbar $ yanchor <- tr $ marker $ colorbar $ yanchor %| D | % yanchor
816+ }
805817 }
806818
807819 }
0 commit comments