A cor no BarLegend não é consistente com o enredo?

Sep 07 2020
lgnds = BarLegend[{{Red, White, Blue}, {-1, 1}}, 
  Ticks -> {{-1, Style["-1", 13, Black]}, {0, 
     Style["0", 13, Black]}, {1, Style["1", 13, Black]}}, 
  LegendMarkerSize -> 150]

DensityPlot[Sin[x] Sin[y], {x, -4, 4}, {y, -3, 3}, 
 ColorFunction -> (Blend[{Red, White, Blue}, Rescale[#, {-1, 1}]] &), 
 ColorFunctionScaling -> False, PlotLegends -> Placed[lgnds, Above]]  

No bacalhau acima, a Whitecor do BarLegenddeve estar em 0, por que mudou?

Respostas

1 kglr Dec 12 2020 at 15:34

Se você adicionar a opção ColorFunctionScaling -> True, BarLegenda anomalia desaparece:

lgnds2 = BarLegend[{{Red, White, Blue}, {-1, 1}}, 
  ColorFunctionScaling -> True, 
  Ticks -> {{-1, Style["-1", 13, Black]}, {0, 
     Style["0", 13, Black]}, {1, Style["1", 13, Black]}}, 
  LegendMarkerSize -> 150]

DensityPlot[Sin[x] Sin[y], {x, -4, 4}, {y, -3, 3}, 
 ColorFunction -> (Blend[{Red, White, Blue}, Rescale[#, {-1, 1}]] &), 
 ColorFunctionScaling -> False, PlotLegends -> Placed[lgnds2, Above]]

O mesmo problema surge ContourPlote também é corrigido usando lgnds2:

5 MichaelE2 Sep 07 2020 at 01:08

Aqui está uma solução alternativa:

Legended[
 DensityPlot[Sin[x] Sin[y], {x, -4, 4}, {y, -3, 3}, 
  ColorFunction -> (Blend[{Red, White, Blue}, 
      Rescale[#, {-1, 1}]] &), 
  ColorFunctionScaling -> False],
Placed[Append[
  lgnds, {LegendLayout -> "Row", Charting`TickSide -> Left}],
 Above]]