One sample has two doubles in them (x and y), thus 2*64bit = 16 byte.
You have 360 000 000 * 16 byte = 5.4 Gigabytes.
Further, For cache-performance reasons, QCustomPlot tries to allocate contiguous memory. So it might be down to memory fragmentation why it can't allocate more. You could try splitting up into chunks of, say 500 000 points and creating a QCPGraph for each chunk – see if that allows you to allocate more.
Overall, on a 32 bit architecture, I wouldn't recommend holding this much memory. You should unload most of it on disk, and load it on-demand. (I know that's a bit tedious and makes the user wait sometimes until the next data is loaded, but with 350m points, I'd say you are already a bit above the limits of what's possible without swapping. And thanks to SSDs, it's by far not as bad as it used to be.)