How to scatter plot with each dimension having its own color
In scatter in Matplotlib, the first two arguments must be the $x$ and $y$ values that you want to combine. In your code, the first value ($x$) is len(inp_samples) (or len(out_samples)) which is the number 300, so all your points line on the $x=300$ vertical line.

In order to combine the inp_samples with the out_samples, I too would recommend using zip, as in your second sample of code. Just replace

plt.scatter(len(inp_samples), d_in, c=c)
plt.scatter(len(out_samples), d_out, c=c)


with

plt.scatter(d_in, d_out, c=c)


(and see if it works).

Edit


  So I thought to plot each point with a different color, but the color for a dimension to be same, so that i would know, which dimensional points are lying where.


In a scatter plot, there is no need for any special colouring -- by two values forming one pair of $(x_i,y_i)$, it is already given which point belongs to which.

You could also try to plot $(i,x_i)$ and $(i,y_i)$ in the same plot. In this case, points above each other belong together and you still don't need any special colouring.

colors = itertools.cycle(["r", "g", "b"])
for i in range(300):
    clr = next(colors)
    plt.scatter(i, d_in[i], c=clr)
    plt.scatter(i, d_out[i], c=clr)