Write me a python function that takes a 2d numpy array which represents a depth map and visualizes it by creating a plot, say, with matplotlib. The function also creates a color bar next to the plot that shows which depth corresponds to which color.
Here's a Python function that takes a 2D numpy array representing a depth map and visualizes it using matplotlib. The function also creates a color bar next to the plot that shows the depth-color correspondence.

```python
import numpy as np
import matplotlib.pyplot as plt

def visualize_depth_map(depth_map):
    
    Visualize a depth map using matplotlib.
    
    Args:
    depth_map (numpy.ndarray): A 2D numpy array representing the depth map.
    
    if depth_map.ndim != 2:
        raise ValueError(Input array should be a 2D numpy array)

    plt.figure()
    img = plt.imshow(depth_map, cmap='viridis', origin='lower')
    plt.title('Depth Map Visualization')
    plt.xlabel('X-axis')
    plt.ylabel('Y-axis')

    # Create a color bar
    cbar = plt.colorbar(img)
    cbar.set_label('Depth', rotation=270, labelpad=15)

    # Display the plot
    plt.show()

# Example usage
depth_map = np.random.rand(100, 100)  # Replace this with your depth map data
visualize_depth_map(depth_map)
```

You can replace the `depth_map` variable with your own 2D numpy array data to visualize it.