# Text position inside jpeg file

I tried the following line in order to write a text in my image.

p1bis = Labeled[p1, Text[Style["(8)", FontSize -> 52]], {{Top, Left}}]


I get the following result:

I want to move the text position, and get this :

How can I change the text position ? I tried the following line but doesn't work... p1bis = Labeled[p1, Text[Style["(8)", FontSize -> 52]], {{0.75, 1}}]

You can use Legended (instead of Labeled) which allows finer placement:

p1 = DensityPlot[Sin[x] Sin[y], {x, -4, 4}, {y, -3, 3}];
Legended[p1, Placed[Style["(8)", FontSize -> 52], Scaled[{.12, .9}]]]


• Legended works with jpeg ? Feb 11 '19 at 9:21
• @Bigprophete, it seems to work: try, for example, p1 = DensityPlot[Sin[x] Sin[y], {x, -4, 4}, {y, -3, 3}, FrameLabel -> {{"label1", "label2"}, {"label3", "label4"}}]; leg = Legended[p1, Placed[Style["(8)", FontSize -> 36], Scaled[{.12, .9}]]]; Import[Export["leg.jpg", leg]]
– kglr
Feb 11 '19 at 18:20

You are using the wrong command, Labeled is for putting a label outside of a plot.

Instead, use Show, which takes plot options, and add the text with Epilog.

e.g.

p1 = DensityPlot[
PDF[MultinormalDistribution[{0, 0}, {{2, 0}, {0, 1}}], {x, y}],
{x, -1, 1}, {y, -1, 1}, ImageSize -> 500,
FrameLabel ->
{Style["horizontal", FontSize -> 26],Style["vertical", FontSize -> 26]}
];
p1bis = Show[p1,
Epilog -> Text[Style["(8)", FontSize -> 52], Scaled[{0.2, 0.8}]]]


Instead of using Scaled[{0.2,0.8}], which puts the position as a percentage of the plot area from the top left corner, you can also remove Scaled[] and just put the absolute coordinates in the curly brackets.

• thanks it works ;) Feb 11 '19 at 8:17

Does this work for you?

ImageCompose[p1, Graphics[Text[Style["(8)", FontSize -> 52]]],
Scaled[{0.32, 0.82}]]


Since your own image won't have the "(8)" in the top left, your coordinates will be slightly different than my own so you will have to play around with those to get it to look right.

The original label is still on there because I just copied your first image above, but it should just have the one label inside the graphic when you run it. If you want a background for your text, you can add that either in Style or just add it as an extra argument to Graphics like

Graphics[{White, Rectangle[Scaled[{0.43, 0.43}], Scaled[{.57, .56}]],
Black, Text[Style["(8)", FontSize -> 52]]}]


If you have the original code for the plot, I would recommend adding labels using Epilog but I assume that you only have access to the image itself.

• thanks, it works too Feb 11 '19 at 8:17