Related work

Julia packages

PkgDependency.jl

Nice and actively maintained package that does a very similar thing to PkgGraph, and has no non-stdlib dependencies.
Prints package dependencies as a tree in the REPL. Because package dependencies are a DAG and not a tree, there are repeated names in the printout (those are marked with a (*)).
For each dependency, shows the version, and optionally compat info and the repository link.

PkgDeps.jl

Provides a very useful users(pkg) function, to see downstream dependents of a package (instead of upstream like here). Also has dependencies(pkg) and direct_dependencies(pkg) functions.

Graphviz.jl

Bundles the graphviz binaries (including dot; via JuliaBinaryWrappers/Graphviz_jll), and provides a @dot_str macro to render dot strings in a notebook.

GraphvizDotLang.jl

Recent package, under active development at the time of writing. A beautiful package to generate and render dot-strings. Uses Julia's piping syntax. Had I discovered this package before writing PkgGraph, I might have used it as a dependency. (Replacing things like PkgGraph.to_dot_str).

Júlio Hoffimann's work

There is a notebook in JuliaGraphsTutorials, by Júlio Hoffimann, that analyzes the complete graph of Julia package dependencies: {nbviewer link}.

Note that this is older code (Julia 0.6), from back when only 1500 packages were registered (circa 2017).

Júlio also made interactive D3.js visualizations of the dependency graph, and of a world map of Julians (See the links at the top of the notebook).