what one need to remember about time on chart: a chart can only show items that existed when first published. And then you can narrow it down with a filter. So yes, publish your graph from a view with a filter, first with the filter showing all periods, then change the values of that filter.
Step 1 - Apply a filter (preferably boolean) to a module and save this view. This Filter should include all the time periods before you publish the graph on to the dashboard (Keep it TRUE for all time periods).
Step 2 - Create a chart based on the saved view that you create in Step 1
Step 3 - Publish the chart on to the dashboard
Step 4 - Write the logic for your filter that you had used in creating saved view of Step 1
However one thing to note - you can not exceed more than 200 items across any axis. For example if you want to see weekly graph for next 4 years or daily graph for one year - that might not work in such cases.
Not necessarily all the time you will have logic but it is recommended that the filter be boolean and your boolean will be populated based on the logic that you provide in the filter line item. For example Currentperiodend() = End() can be the logic.
Also I want to highlight that in classic dashboard we have the limitation of 200 item per axis in graphs whereas in NUX you don't have such limitation.