code: def render_tensors(self, tensors: List[any], axes: np.ndarray, color):
      assert len(axes.shape) == 2
      assert axes.shape[0] * axes.shape[1] == len(tensors)
      x_min = x_max = y_min = y_max = 0
  
      for i in range(axes.shape[0]):
          for j in range(axes.shape[1]):
              idx = i * axes.shape[1] + j
              axes[i, j].set_title(f"{tensors[idx].step :,}")
              matrix = tf.make_ndarray(tensors[idx].tensor_proto)
              x1, x2, y1, y2 = self.render_matrix(
                  matrix, axes[i, j], color
              )
              x_min = min(x_min, x1)
              x_max = max(x_max, x2)
              y_min = min(y_min, y1)
              y_max = max(y_max, y2)
  
      for i in range(axes.shape[0]):
          for j in range(axes.shape[1]):
              axes[i, j].set_xlim(x_min, x_max)
              axes[i, j].set_ylim(y_min, y_max)
  
imports: from typing import List
  import numpy
  import tensorflow
label_desc: Use image node_id 2 for calling the MatPlotLibTensorBoardAnalytics obj's underlying member method code with example usage: obj.render_tensors(tensors, axes, color) without return types