code: def example_hin_3(feature_size_by_type=None):
      if feature_size_by_type is None:
          feature_size_by_type = {"t1": None, "t2": None}
  
      nodes_type_1 = np.array([0, 1, 2])
      nodes_type_2 = np.array([4, 5, 6])
      nodes = {
          "t1": pd.DataFrame(
              repeated_features(
                  10 + nodes_type_1, feature_size_by_type["t1"]
              ),
              index=nodes_type_1,
          ),
          "t2": pd.DataFrame(
              repeated_features(
                  10 + nodes_type_2, feature_size_by_type["t2"]
              ),
              index=nodes_type_2,
          ),
      }
      edges = {
          "e1": pd.DataFrame(
              [(0, 4), (1, 5)], columns=["source", "target"]
          ),
          "e2": pd.DataFrame(
              [(0, 2)], columns=["source", "target"], index=[2]
          ),
      }
  
      # Node 2 has no edges of type 1
      # Node 1 has no edges of type 2
      # Node 6 has no edges
  
      return StellarGraph(nodes, edges), nodes_type_1, nodes_type_2
  
imports: from stellargraph.core.graph import *
  from stellargraph.mapper import *
  import networkx
  import numpy
  import random
  import pytest
  import pandas
  import scipy.sparse
  from ..test_utils.graphs import example_graph, example_graph_random, example_hin_1, create_graph_features, repeated_features, weighted_tree
  from ..None import test_utils
label_desc: Use image node_id 3 for calling a global function with example usage: example_hin_3(feature_size_by_type) and returns: StellarGraph,  nodes_type_1,  nodes_type_2