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
    Oct 16, 2019 at 13:30
  • $\begingroup$ Yes, thanks a lot! $\endgroup$
    – Jan SE
    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, privacy policy and cookie policy

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