In [12]:
plt.figure(figsize = (10, 10))
ax = plt.axes()

plt.title("Sensor Positions and Ranges", fontsize = 18, y = 1.01)
plt.xlabel("$x$ (cm)", fontsize = 16)
plt.ylabel("$y$ (cm)", fontsize = 16)

# Choose a display range that reflects the reference frame and encompasses all sensor positions
plt.xlim(0, 900)
plt.ylim(0, 900)

for sensor in data:
    x, y, d = data[sensor]
    # Plot the sensor position
    ax.plot(x, y, 'go', ms = 8)
    # Annotate sensor positon with sensor's ID.
    # Offset the annotation from the marker so that they do not overlap.
    ax.annotate(sensor, (x + 10, y + 10), fontsize = 12)
    # Plot sensor's range
    circle = patches.Circle(
        (x, y),
        radius = d,
        alpha = 0.2,
        color = 'g',
        linewidth = 5
    )
    ax.add_patch(circle)

plt.show()