#Processing, <s>197</s> 195 bytes

<!-- language: lang-processing -->

    void setup(){size(255,255);int r=255,a=r,g=0,b=0,i,j,k;background(a);for(i=0;i<a;k=i<43?g+=6:i<85?r-=6:i<a/2?b+=6:i<170?g-=6:i<213?r+=6:a>1?b-=6:0,i++)for(j=0;j<a;point(i,j++))stroke(r,g,b,a-j);}

This outputs the image in a 255x255 sized window

###Explained

<!-- language: lang-processing -->

    void setup(){            //this is required
      size(255,255);         //size of sketch
      int r=255,a=r,g=0,b=0,i,j,k; //declaring our vars
      background(a);         //set the background colour as white
      //for-loop for the x-coordinates, it also increments/decrements rgb values
      //  based on the x-coordinate
      for(i=0;i<a;k=i<43?g+=6:i<85?r-=6:i<a/2?b+=6:i<170?g-=6:i<213?r+=6:a>1?b-=6:0,i++)
        //for-loop for the y-coordinate (alpha)
        for(j=0;j<a;point(i,j++))   //2) then draw the point at the location
          stroke(r,g,b,a-j);        //1) set the colour of point
    }

[![enter image description here][1]][1]


  [1]: https://i.sstatic.net/mdtnu.png

###Edits

- Used `int` instead of `float`