code: def _get_3d_plot(self, label_stable=True):
          
          import matplotlib.pyplot as plt
          import mpl_toolkits.mplot3d.axes3d as p3
          from matplotlib.font_manager import FontProperties
          fig = plt.figure()
          ax = p3.Axes3D(fig)
          font = FontProperties()
          font.set_weight("bold")
          font.set_size(20)
          (lines, labels, unstable) = self.pd_plot_data
          count = 1
          newlabels = list()
          for x, y, z in lines:
              ax.plot(x, y, z, "bo-", linewidth=3, markeredgecolor="b",
                      markerfacecolor="r", markersize=10)
          for coords in sorted(labels.keys()):
              entry = labels[coords]
              label = entry.name
              if label_stable:
                  if len(entry.composition.elements) == 1:
                      ax.text(coords[0], coords[1], coords[2], label)
                  else:
                      ax.text(coords[0], coords[1], coords[2], str(count))
                      newlabels.append("{} : {}".format(count, latexify(label)))
                      count += 1
          plt.figtext(0.01, 0.01, "\n".join(newlabels))
          ax.axis("off")
          return plt
docs: Shows the plot using pylab.  Usually I won"t do imports in methods,
          but since plotting is a fairly expensive library to load and not all
          machines have matplotlib installed, I have done it this way.