PaulS:
Suppose that you send a value, 750, that is in the range 0 to 1023.You subract (or used to) 500 from that, giving a value of 250. Then, you pretend, when you do that mapping, that the value is still in the range 0 to 1023. It isn't. The value is in the range 0 to 523. You are introducing distortion right there.
If you want the plot to cover only 3/4 of the screen (why, I can't imagine), then change the to range to 0 to height * 0.75.
I still think it's better to deal with one channel, until you get that working the way you want. It seems to me that you want to draw a line for every sample. It seems that you want the length of the line to not change more than some amount, regardless of what the data shows as a change. Again, why you want to do this is not clear.
What is also not clear is what the Arduino is measuring on the analog pins.
I will do it without subtracting the 500 then, no tampering with the results then. I'll just re-draw a bigger screen.
The arduino is connected to photodiodes (a pulse oxymeter to be exact), and those are their readings. I want to make it similar to this:
(this is a professional pulse oxymeter reading, with all the filters and digital filters needed):

Thats what I want to get. I want to measure big changes in the pulse since I am using that in my research. the oxymeter is in the knuckle, and I want to map out the change in pulse (or blood flow) as you move the finger.
NOTE I cant use a regular pulse oxymeter since they are fitted for the tip of the finger or the ear or the penis, but not for the knuckles.