ContourPlot - ColorFunctionScaling không giúp hỗ trợ ColorFunction đúng cách

Aug 30 2020

Tôi có ContourPlot trong đó mọi đường viền sẽ được hiển thị bằng một màu khác

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"
]

nhưng tôi nhận được kết quả này

nó có vẻ như ColorFunctionkhông hoạt động. Vì vậy, tôi đã cố gắng thêmColorFunctionScaling->False

mang lại cho tôi kết quả này

Như bạn có thể thấy, có một sự khác biệt nhưng không phải những gì tôi mong đợi. Tôi đã cố gắng sử dụng ColorFunctionScaling->Truenó cũng mang lại cho tôi đầu ra giống như lúc đầu.

Trả lời

6 tad Aug 30 2020 at 18:07

Tôi nghĩ rằng vấn đề đến từ các giá trị lớn gần điểm kỳ dị trong hàm của bạn ở phía trên bên trái. Sự lựa chọn mặc định của màu đường viền dường như đang sử dụng nhiều phạm vi hơn nó hiển thị trong biểu đồ theo mặc định.

Một công việc xung quanh là xác định phạm vi trong hàm màu.

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