You can preset the chart timescale in a live feed chart by feeding in a stored data chart at midnight, containing two null data object values and a different topic.
e.g
[{"id":"6f7c79357f2f23d5","type":"inject","z":"b9860b4b9de8c8da","name":"reset midnight","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"00 00 * * *","once":true,"onceDelay":0.1,"topic":"any_name","payload":"1","payloadType":"num","x":420,"y":4620,"wires":[["bd44f1197a5c3b20"]]},{"id":"bd44f1197a5c3b20","type":"change","z":"b9860b4b9de8c8da","name":"simulate output","rules":[{"t":"set","p":"timestamp","pt":"msg","to":"","tot":"date"},{"t":"set","p":"payload","pt":"msg","to":"[\t {\t \"series\":[$$.topic],\t \"data\":[\t [\t {\"x\":$$.timestamp,\"y\":null},\t {\"x\":$$.timestamp + $$.payload * 3540000,\"y\":null}\t ]\t ]\t }\t]","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":660,"y":4620,"wires":[["42215a696cc6c3f9","e06d1d87b8add7cb","40f75ba563bdf7af"]]},{"id":"42215a696cc6c3f9","type":"ui_chart","z":"b9860b4b9de8c8da","name":"","group":"2d4fe667.28f8ba","order":24,"width":0,"height":0,"label":"Input","chartType":"line","legend":"false","xformat":"HH:mm","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":"24","removeOlderPoints":"100","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"className":"","x":790,"y":4680,"wires":[["e7781b7b333c3c9c"]]},{"id":"e06d1d87b8add7cb","type":"debug","z":"b9860b4b9de8c8da","name":"debug 317","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":930,"y":4580,"wires":[]},{"id":"40f75ba563bdf7af","type":"ui_chart","z":"b9860b4b9de8c8da","name":"","group":"2d4fe667.28f8ba","order":24,"width":0,"height":0,"label":"Output","chartType":"line","legend":"false","xformat":"HH:mm","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":"24","removeOlderPoints":"100","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"className":"","x":790,"y":4720,"wires":[[]]},{"id":"9fd8236908d9e652","type":"inject","z":"b9860b4b9de8c8da","name":"input","props":[{"p":"payload"},{"p":"topic","vt":"str"},{"p":"timestamp","v":"","vt":"date"}],"repeat":"120","crontab":"","once":false,"onceDelay":0.1,"topic":"input","payload":"$round($random()*10)","payloadType":"jsonata","x":410,"y":4680,"wires":[["42215a696cc6c3f9"]]},{"id":"e7781b7b333c3c9c","type":"debug","z":"b9860b4b9de8c8da","name":"debug 316","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":950,"y":4680,"wires":[]},{"id":"507dfaddce267ffd","type":"inject","z":"b9860b4b9de8c8da","name":"output","props":[{"p":"payload"},{"p":"topic","vt":"str"},{"p":"timestamp","v":"","vt":"date"}],"repeat":"120","crontab":"","once":false,"onceDelay":0.1,"topic":"output","payload":"$round($random()*10)","payloadType":"jsonata","x":420,"y":4720,"wires":[["40f75ba563bdf7af"]]},{"id":"2d4fe667.28f8ba","type":"ui_group","name":"demo","tab":"1caa8458.b17814","order":2,"disp":true,"width":"12","collapse":false,"className":""},{"id":"1caa8458.b17814","type":"ui_tab","name":"Demo","icon":"dashboard","order":1,"disabled":false,"hidden":false}]
You can then feed in other topics and the chart will stay at set timescale.
The example is set for 1 hour, for testing. Edit midnight inject to set for 24 hours.
[edit] removed excess array element in inject node.