diff --git a/src/robofish/io/file.py b/src/robofish/io/file.py
index c45bb741bf2414992c2a7f19b3c621ca7fec458a..cc267cbecc21958fb51b3b8068a0b1e549be126b 100644
--- a/src/robofish/io/file.py
+++ b/src/robofish/io/file.py
@@ -1099,6 +1099,7 @@ class File(h5py.File):
 
         zones = []
         if render_zones:
+            fovs = []
             for ei, e in enumerate(self.entities):
                 zone_sizes_str = get_zone_sizes_from_model_str(self.attrs.get("guppy_model_rollout", ""))
                 zone_sizes_attrs = get_zone_sizes_from_attrs(e)
@@ -1110,10 +1111,14 @@ class File(h5py.File):
                 fov = zone_sizes.get("fov", np.pi*2)
                 fov = np.rad2deg(fov)
                 zone_sizes.pop("fov", None)
+                fovs.append(fov)
                 
                 entity_zones = []
                 for zone_size in zone_sizes.values():
-                    entity_zones.append(matplotlib.patches.Arc((0,0), zone_size, zone_size, angle=0, theta1=-fov/2, theta2=fov/2, color=fish_colors[ei], alpha=0.3, fill=False))
+                    if fov >= 360:
+                        entity_zones.append(matplotlib.patches.Circle((0, 0), zone_size, color=fish_colors[ei], alpha=0.3, fill=False))
+                    else:
+                        entity_zones.append(matplotlib.patches.Wedge((0,0), zone_size, theta1=-fov/2, theta2=fov/2, color=fish_colors[ei], alpha=0.3, fill=False))
                 zones.append(entity_zones)
                 
         zones_flat = []
@@ -1391,11 +1396,15 @@ class File(h5py.File):
                 poses_trails = entity_poses[:, max(0, file_frame - trail) : file_frame]
                 for i_entity in range(n_entities):
                     for zone in zones[i_entity]:
-                        zone.center = (
+    
+                        zone.set_center((
                             this_pose[i_entity, 0],
                             this_pose[i_entity, 1],
-                        )
-                        zone.angle = this_pose[i_entity, 2] * 180 / np.pi
+                        ))
+                        if fovs[i_entity] < 360:
+                            ori_deg = np.rad2deg(this_pose[i_entity, 2])
+                            zone.theta1 = ori_deg  - fovs[i_entity] / 2
+                            zone.theta2 = ori_deg + fovs[i_entity] / 2
 
                 if render_swarm_center:
                     swarm_center[0].set_offsets(swarm_center_position[file_frame])
diff --git a/tests/resources/valid_couzin_params.hdf5 b/tests/resources/valid_couzin_params.hdf5
index e8c7ef32b4b929f0db806dadbfd266ab1eaca66b..506cdd1ae9df5a0438b2bcec9b47ffc016037515 100644
Binary files a/tests/resources/valid_couzin_params.hdf5 and b/tests/resources/valid_couzin_params.hdf5 differ