code: public String generateGraphVizDotFileFromInterClassDependencies(final float sizeX, final float sizeY,
              final boolean includeExternalClasses) {
          if (isEmpty()) {
              throw new IllegalArgumentException("List is empty");
          }
          final ScanSpec scanSpec = get(0).scanResult.scanSpec;
          if (!scanSpec.enableInterClassDependencies) {
              throw new IllegalArgumentException(
                      "Please call ClassGraph#enableInterClassDependencies() before #scan()");
          }
          return GraphvizDotfileGenerator.generateGraphVizDotFileFromInterClassDependencies(this, sizeX, sizeY,
                  includeExternalClasses);
      }
docs: Generate a .dot file which can be fed into GraphViz for layout and visualization of the class graph. The
  returned graph shows inter-class dependencies only. The sizeX and sizeY parameters are the image output size
  to use (in inches) when GraphViz is asked to render the .dot file. You must have called
  {@link ClassGraph#enableInterClassDependencies()} before scanning to use this method.
  
  @param sizeX
  The GraphViz layout width in inches.
  @param sizeY
  The GraphViz layout width in inches.
  @param includeExternalClasses
  If true, and if {@link ClassGraph#enableExternalClasses()} was called before scanning, show
  "external classes" (non-whitelisted classes) within the dependency graph.
  @return the GraphViz file contents.
  @throws IllegalArgumentException
  if this {@link ClassInfoList} is empty or {@link ClassGraph#enableInterClassDependencies()} was
  not called before scanning (since there would be nothing to graph).