<｜begin▁of▁sentence｜>### Instruction:
Given a graph with a single vertex and a loop edge, can you use the TaperedEdgeDrawer.draw_loop_edge method in igraph to draw this loop edge with tapered thickness?
### Response:
import igraph as ig
import cairo
from igraph.drawing.edge import TaperedEdgeDrawer

# Create an empty graph and add vertices and a loop edge
g = ig.Graph()
g.add_vertices(1)
g.add_edges([(0, 0)])

# Set up Cairo context
width, height = 200, 200
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height)
ctx = cairo.Context(surface)

# Create a plot
plot = ig.Plot(surface, bbox=(width, height), background='white')
plot.add(g, layout=[[100, 100]], vertex_size=20)

# Use TaperedEdgeDrawer to draw a loop edge
ted = TaperedEdgeDrawer(ctx)
ted.set_layout(plot.layout)
ted.draw_loop_edge(0, radius=40, width1=3, width2=1)

# Save the drawing
surface.write_to_png('loop_edge.png')
<|EOT|>
