Bitcoin
Client – How can I retrieve transaction graph data for a specific period of time?

I want to create graph data about Bitcoin transactions over a specific period of time. In other words, I’m trying to write some kind of program that will return transaction graph data when the user enters a certain time range and allow the user to play around with it.
Does anyone know what the easiest and best way to do this is? I know there are a few APIs available (Blockchain.com, Blockstream) or you can run a full node, but I wanted to hear people’s suggestions. My other concern is exceeding the memory capacity for retrieving data over large time ranges.
thank you!