ContourPlot - ColorFunctionScaling não ajuda a obter ColorFunction corretamente

Aug 30 2020

Eu tenho um ContourPlot onde cada contorno deve ser exibido com uma cor diferente

ContourPlot[
 -((2500*Sqrt[13]*(x - 10000)*x^2*y)/(15625*x^4 - 13*(x - 10000)^2*y^2)),
 {x, 35, 100},
 {y, 1.4, 5.6},
 PlotLegends -> Automatic,
 Contours -> 20,
 ColorFunction -> "DarkRainbow"
]

mas eu recebo esta saída

parece que o ColorFunctionnão funciona. Então tentei adicionarColorFunctionScaling->False

o que me dá essa saída

Como você pode ver, há uma diferença, mas não o que eu esperava. Tentei usar ColorFunctionScaling->Truetambém o que me dá a mesma saída que tinha no início.

Respostas

6 tad Aug 30 2020 at 18:07

Acho que o problema vem dos grandes valores próximos à singularidade em sua função no canto superior esquerdo. A escolha padrão de cores de contorno parece estar usando muito mais do intervalo do que mostra no gráfico por padrão.

Uma solução alternativa é especificar o intervalo na função de cor.

With[{min = 0, max = 20},
   ContourPlot[-((2500*Sqrt[13]*(x - 10000)*x^2*y)/(15625*x^4 - 
   13*(x - 10000)^2*y^2)), {x, 35, 100}, {y, 1.4, 5.6}, 
   PlotLegends -> Automatic, Contours -> 20, 
   PlotRange -> {min, max}, 
   ColorFunctionScaling -> False, 
   ColorFunction -> (ColorData[{"DarkRainbow", {min, max}}])
  ]
]