Creating Rainbows:
I’m gonna show you how to create two rainbows like the ones below:
A realistic type of rainbow:
A rainbow you’ll usually find in kiddies books and stuff:
We’re gonna start with the first one:
Open your image:

Create a new layer, and select your gradient tool.

Change this setting to Radial Gradient (you can choose something else too but I like this one more).

Also change the mode to something you’ll be happy with. I like to use “screen”, it makes it look more realistic.
Click on this:

Now in the presets menu select “Transparent Rainbow” and drag each color stop to the right to make it a little bit smaller. See my settings below.
Click OK.
Now, with your gradient tool drag it until you like the shape of your rainbow. This is the direction I dragged mine in:

Now it looks like this:

Change the opacity of the layer to something like 60%, and now you’ve got your rainbow!
Great! Now we’re gonna go on to the second one:
On your canvas, create a new layer.
With the Elliptical Marquee tool create a half circle like the one shown below, fill it with red (#B2001C).

Create a new layer and create another circle on top of the other one, fill it with orange (#FF7F00).

Repeat this step with the following colors:
Yellow (#FFE600)
Green (#409D27)
Blue (#101077)
Purple (#8C1788)
You should end up with this:
Merge all your rainbow layers together, leaving only the background layer. Do this by clicking on the purple layer. Hold ctrl and press e until all your layers is merge. Now resize your rainbow (if necessary).

Make a selection at the bottom of your circle like this:

Go to edit – cut. Now make a selection with the Elliptical Marquee tool like this:

Go to edit – cut again. Now you should have a rainbow:
Now to make it look nicer, with a big soft white brush, paint the edges of the rainbow:

Change your foreground color to blue, open a new layer and go to filter, render, clouds. Change the opacity to 70%. With your eraser tool, erase parts of the clouds on your rainbow. Now you have this:
