Starting is simple and then increasing complexity:
Graphics[{Arrow[{{0, 0},

Graphics[{Arrow[{{0, 0},

Needs["PlotLegends`"]; list1 = {{3, 1}, {1, 3}, {-1, 2}, {-1, -1}, {1, -2}}; k = ColorData[22, "ColorList"][[;; Length@list1 ]]; GraphicsRow[{ Graphics[Riffle[k, Arrow[{{0, 0}, #}] & /@ #], Axes -> True], Graphics@Legend [Table[{k[[i]], #[[i]]}, {i, Length@ #}]]}] &@list1

Needs["PlotLegends`"]; list1 = {{3, 1}, {1, 3}, {-1, 2}, {-1, -1}, {1, -2}}; k = ColorData[22, "ColorList"][[;; Length@list1 ]]; ls = Sequence[Thick, Line[{{0, 0}, {1, 0}}]]; GraphicsRow[{ Graphics[Riffle[k, Arrow[{{0, 0}, #}] & /@ #], Axes -> True], Graphics@Legend [MapThread[{Graphics[{#1, ls}], #2} &, {k, #}]]}] &@list1

Needs["PlotLegends`"]; list1 = {{3, 1}, {1, 3}, {-1, 2}, {-1, -1}, {1, -2}}; pr = { Min@ #, Max@ #} & /@ Transpose@list1 ; k = ColorData[22, "ColorList"][[;; Length@list1 ]]; GraphicsRow[{ Graphics[r = Riffle[k, {Thick,Arrow[{{0, 0}, #}]} & /@ #], Axes -> True], Graphics@ Legend[MapThread[ {Graphics[#1, Axes -> True, Ticks -> None, PlotRange -> pr], Text@Style [#2, 20]} &, {Partition[r, 2], #}]]}] &@list1

You can also configure ListVectorPlot , although I do not understand why you should do this, since it is not intended to be used as follows:
list1 = {{3, 1}, {1, 3}, {-1, 2}, {-1, -1}, {1, -2}}; data = Table[{i/2, -i/Norm[i]}, {i, list1}]; ListVectorPlot[data, VectorPoints -> All, VectorScale -> {1, 1, Norm[{
