Labels position when plotting netwrokx

I was able to nicely plot a network directed graph (DiGraph) using the following:

nodes = hvnx.draw_networkx_nodes(
        dg, pos, node_color="yellow", with_labels=True
)
edges = hvnx.draw_networkx_edges(
        dg,
        pos,
        arrowstyle="->",
        arrowsize=10,
        edge_cmap="Blues",
        edge_width=2,
        colorbar=True,
    )
    return nodes * edges

The only problem I have (at the moment) is that the labels or directly on the nodes and thus hard to read. How can I control the location of the labels of the nodes?

I have a follow up question: the arrows rendered using the aforementioned code are overlapping the nodes. Is there a way to make it look nicer?