Repository: napari/napari

Issue:
opening multiple images with different shape in the napari 
## 🐛 Bug

Napari has a "cosmetical error" when handling multiple images with different shape. I called "cosmetical error" because it handles data and thus visualization correctly.  


## To Reproduce

The example below opens 2d and 4d images together. 

```
from skimage import data
import napari

viewer = napari.Viewer()
layer = viewer.add_image(data.coins(), name = "2d coin")
layer = viewer.add_image(data.cells3d(), name = "4d cell")
```

As you can see the screenshot below, it shows '2d coin' image with 4d array in the bottom left corner as well as two sliding bar. 

![image](https://user-images.githubusercontent.com/28872346/198790224-3233a31b-82ea-490b-99ad-07865cde7f6f.png)


## Expected behavior

I expect "2d coin" to show [230 193], instead of [22 0 230 193] in the bottom left corner and without sliding bar.
 


Discussion:
But napari has global sideboards, and it state depends on all present layers. This is design decision
Yeah this is intended behavior. The sliders and dimensions are a viewer property, so they apply to every image. Perhaps to better see the reasoning try opening just the 4D cells again. It's actually a z-stack, so it's 3D+Ch, so it's better to open it either as:
```
from skimage import data
import numpy as np
import napari

viewer = napari.Viewer()
viewer.add_image(np.transpose(data.cells3d(), (1, 0, 2, 3)), name = "4d cells")
```
(or `viewer.add_image(data.cells3d(), channel_axis=1)` which will split the channels)

Then go to the layer list and right click and choose Projections > Max
You'll get a new layer with the Max projection of each channel across the Z dimension. This is a 2D+Ch layer and it's broadcast across the whole stack so you can compare any slice/channel.
Thanks for the quick answers, @Czaki and @psobolewskiPhD ! 

I understand now that the sliders and dimensions are a viewer property. Personally I find the sliders themselves are okay to remind. However, I still find the dimesions/values displayed in the bottom left corner misleading, and I strongly prefer to see the correct dimensions of my data, instead of viewer property.  Just my two cents. 

@psobolewskiPhD I appreciate your detailed suggestion.  I randomly picked the cell data to report the issue, but it is good to learn how to properly visualize the data with channel. :)
> I strongly prefer to see the correct dimensions of my data, instead of viewer property.

You can! With the example code I posted above, try adding:
`viewer.dims.axis_labels = ("C", "Z", "Y", "X")`

(I used `viewer.layers[0].data.shape` to get the shape of the layer data, which because I knew it was a Z-stack told me what the axes were. But could have checked at the source: https://scikit-image.org/docs/stable/api/skimage.data.html#skimage.data.cells3d )
I meant I would like to display the correct dimension showing up at the bottom left corner (or somewhere in the napari). For example,  "2d coin" would show [230 193], instead of [22 0 230 193] in napari. 

Resolving patch:
diff --git a/napari/layers/base/base.py b/napari/layers/base/base.py
--- a/napari/layers/base/base.py
+++ b/napari/layers/base/base.py
@@ -1630,7 +1630,7 @@ def get_status(
 
         source_info = self._get_source_info()
         source_info['coordinates'] = generate_layer_coords_status(
-            position, value
+            position[-self.ndim :], value
         )
         return source_info
 
diff --git a/napari/layers/labels/labels.py b/napari/layers/labels/labels.py
--- a/napari/layers/labels/labels.py
+++ b/napari/layers/labels/labels.py
@@ -1406,7 +1406,7 @@ def get_status(
 
         source_info = self._get_source_info()
         source_info['coordinates'] = generate_layer_coords_status(
-            position, value
+            position[-self.ndim :], value
         )
 
         # if this labels layer has properties
diff --git a/napari/layers/points/points.py b/napari/layers/points/points.py
--- a/napari/layers/points/points.py
+++ b/napari/layers/points/points.py
@@ -2112,7 +2112,7 @@ def get_status(
 
         source_info = self._get_source_info()
         source_info['coordinates'] = generate_layer_coords_status(
-            position, value
+            position[-self.ndim :], value
         )
 
         # if this points layer has properties


Test patch: