# Callout mystery

I have this function:

de[a_, x_] = -1 + (E^-x x^a)/((-a + x) Gamma[a, x]);


When I do

Plot[Callout[de[-7, x] // Re, "de", {10, .022}, {x, de[-7, x]} /. {x -> 4}], {x, 0, 20}]


I get the expected picture: However, if I change -7 to -7.5:

Plot[Callout[de[-7.5, x] // Re, "de", {10, .022}, {x, de[-7.5, x]} /. {x -> 4}], {x, 0, 20}]


then I get this disappointing result:

What is wrong here and how to fix it?

Callout[de[-7.5,x] //Re, "de", {10, .022}, {x, de[-7.5,x]} /. {x->4}]


Callout[-1 + Re[E^-x/(x^7.5 (7.5 + x) Gamma[-7.5, x])], "de", {10, 0.022}, {4, 0.0309208 + 0. I}]

Notice that the 4th argument is complex. This is why Callout complains. So, use the real part:

Plot[
Callout[de[-7.5,x] //Re, "de", {10, .022}, {x, Re @ de[-7.5,x]} /. {x->4}],
{x, 0, 20}
] • Thank you very much! However, I still don't understand why Mathematica complained about the argument {10, .022}, whereas the real problem was with another argument. – Iosif Pinelis Aug 15 '19 at 22:05
• @IosifPinelis the complaint comes from the point specified not being a valid position for the placement of the callout. The system doesn’t know you’re intending to plot the real part of the expression, but it can assuredly & confidently tell you that “the point specified is not valid (though it could say something like ‘because the eqn to be placed upon is complex’)” – CA Trevillian Aug 17 '19 at 21:24