I have the following code:

P = 100;(*Precision for the calculation*)

nV = 2;

omV = 1;(*eV*)

B0V = 194;(*eV^2*)

km[om0_, ma0_, n0_, g0_] := 
 Block[{ma = SetPrecision[ma0, P], om = SetPrecision[om0, P], 
   n = SetPrecision[n0, P], g = SetPrecision[g0, P]}, 
    2*( -ma^2/om^2 + n^2 + 1 - 
      Sqrt[(ma^2/om^2 + n^2 - 1)^2 + (2*g*194/om*10^(-9))^2])]]

pkm=ContourPlot[km[1,m,2,g],{m,10^(-4),10^0},{g,10^(-4),10^8},ScalingFunctions->{"Log","Log"},PlotLegends->BarLegend[{Automatic,{0,1}},LegendLabel->"Subscript[k, -]"],Contours->10,PlotPoints->100];

test = LogLogPlot[
  1/B0V*10^9*omV*nV*Sqrt[1 - m^2/omV^2], {m, 10^(-0.25), 10^0}, 
  PlotPoints -> 60000]

Show[pkm,  test]

that produces the following output:

enter image description here

My problem is that Mathematica does not color the whole range that should be colored. For example the whole range up to 1 on the x axis should be colored. I have indicate this with the blue curve. Everything under the blue curve should be colored. Everything else should give an imaginary value and should be white. (Another small question would be How I can draw the blue curve down to 0.001 y values?)

Many thanks in advance!

  • 2
    $\begingroup$ do you get what you need if you add the option PlotRange->All to ContourPlot? $\endgroup$
    – kglr
    Commented Oct 16, 2019 at 13:30
  • $\begingroup$ Yes, thanks a lot! $\endgroup$
    – Jan SE
    Commented Oct 16, 2019 at 13:36

1 Answer 1


If we add the option PlotRange->All to ContourPlot,

Show[pkm, test]


enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.