ContourPlot - ColorFunctionScaling no ayuda a obtener ColorFunction correctamente

Aug 30 2020

Tengo un ContourPlot donde cada contorno debe mostrarse con un color 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"
]

pero obtengo esta salida

parece ColorFunctionque no funciona. Entonces traté de agregarColorFunctionScaling->False

lo que me da esta salida

Como puede ver, hay una diferencia, pero no es la que esperaba. Traté de usarlo ColorFunctionScaling->Truetambién, lo que me da el mismo resultado que tenía al principio.

Respuestas

6 tad Aug 30 2020 at 18:07

Creo que el problema proviene de los valores grandes cerca de la singularidad en su función en la parte superior izquierda. La elección predeterminada de colores de contorno parece usar mucho más del rango de lo que muestra en el gráfico de forma predeterminada.

Una solución alternativa es especificar el rango en la función de color.

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}}])
  ]
]