<｜begin▁of▁sentence｜>### Instruction:
As a Property Appraiser, you often encounter scenarios where you need to analyze data related to real estate properties. Imagine you're assessing a neighborhood's infrastructure by examining its road network. You've gathered data representing the connections between intersections in the form of an adjacency matrix. Each intersection is a node, and a '1' in the matrix indicates a connection between two intersections, while '0' indicates no direct connection.

Now, you need to utilize the `numpy_to_contiguous_memoryview` function in the igraph library to transform this matrix into a contiguous memory view, which is essential for creating an igraph Graph object. This transformation is crucial for efficient analysis and visualization of the road network, helping you make informed decisions regarding property values and infrastructure development within the neighborhood.
### Response:
import igraph as ig
import numpy as np

# Define a NumPy array representing the adjacency matrix of a graph
adj_matrix = np.array([[0, 1, 0, 0],
                       [1, 0, 1, 0],
                       [0, 1, 0, 1],
                       [0, 0, 1, 0]])

# Convert the NumPy array to a contiguous memoryview
memview = ig.numpy_to_contiguous_memoryview(adj_matrix)

# Create an igraph Graph from the contiguous memoryview
graph = ig.Graph.Adjacency(memview.tolist())

# Plot the graph
ig.plot(graph, bbox=(300, 300), vertex_label=range(graph.vcount()))
<|EOT|>
