Arduino Uno R3, WS2812B, 1 strip of 60 leds, segmented in to 4
The used library doesn't give you the direct possibility to automate the segment changes. So you need to write that code yourself.
Currently you are setting up all segment in setup() and starting them together via start(). Instead you should add the corresponding segment only, when it should be on, and removing all segments, that should not run. In the following I don't remove and add a segment, but I'm replacing the previous segment (described below)
I propose a code like the following, to light up each element after the other for a specific time each (not tested):
#include &lt;WS2812FX.h&gt;

#define LED_COUNT 60

#define LED_PIN 13

#define SEGMENT_INTERVAL    3000
unsigned long segment_timestamp;
uint8_t current_segment = 0;
#define SEGMENT_N   4

WS2812FX ws2812fx = WS2812FX(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {
    ws2812fx.init();
    ws2812fx.setBrightness(85);
    ws2812fx.start(); 
}

void loop() {
    if(millis()-segment_timestamp &gt; SEGMENT_INTERVAL){
        segment_timestamp += SEGMENT_INTERVAL;
        switch(current_segment){
            case 0:
                ws2812fx.setSegment(0,  0, 14, FX_MODE_COMET, BLUE,  3000, false);
                break;
            case 1:
                ws2812fx.setSegment(0, 15, 29, FX_MODE_SCAN, RED, 3000, true);
                break;
            case 2:
                ws2812fx.setSegment(0, 30, 44, FX_MODE_SCAN, BLUE,  3000, false);
                break;
            case 3:
                ws2812fx.setSegment(0, 45, 60, FX_MODE_SCAN, RED, 3000, true);
                break;
        }
        current_segment = (current_segment + 1) % SEGMENT_N;
    }
    ws2812fx.service();
}

What happens here? First we use the millis() function in the pattern of the BlinkWithoutDelay example to time the change of segments to every 3s (3000ms) without blocking the execution of the other code (here the service routine of the LED animation). I will not go into detail here, since this principle is described at numerous places through the web and this site. Just search for something like &quot;Arduino millis&quot; or &quot;Arduino Blink without delay&quot;. Now is only important, that the code inside the if statement will be executed every 3s (can be changed with SEGMENT_INTERVAL).
In the if statement we use a switch statement to set the corresponding segment, that should be activated at that time. Here we always set the segment 0, since only one segment is active at any time. Instead of removing the previous segment and adding the new one, we just change the previous segment to the data of the new segment.
With the line
current_segment = (current_segment + 1) % SEGMENT_N;

we increment to the next segment, while wrapping around from segment 3 to segment 1 via the modulo operator %. This is needed to loop through the segments.
The call to ws2812fx.service() is still needed, since it handles the actual animation of the current segment.

Note, that the above code can still be improved. You could save all the segment data in an array of structs and replace the switch statement with one line, using the current_segment'th element of the array. I will leave that improvement to you.