code: def plotSensationByColumn(suite, name):
    
    path = suite.cfgparser.get(name, "path")
    path = os.path.join(path, name)
  
    touches = {}
    for exp in suite.get_exps(path=path):
      params = suite.get_params(exp)
      cols = params["num_cortical_columns"]
      features = params["num_features"]
      if not features in touches:
        touches[features] = {}
  
      touches[features][cols] = np.mean(
        suite.get_histories_over_repetitions(exp, "touches", np.mean))
  
    ax = plt.figure(tight_layout={"pad": 0}).gca()
    colorList = ['r', 'b', 'g', 'm', 'c', 'k', 'y']
    for i, features in enumerate(sorted(touches)):
      cols = touches[features]
      plt.plot(cols.keys(), cols.values(), "-",
               label="Unique features={}".format(features),
               color=colorList[i])
  
    # format
    plt.xlabel("Number of columns")
    plt.ylabel("Average number of touches")
    plt.title("Number of touches to recognize one object (multiple columns)")
    ax.xaxis.set_major_locator(MaxNLocator(integer=True))
    plt.legend(framealpha=1.0)
  
    # save
    path = suite.cfgparser.get(name, "path")
    plotPath = os.path.join(path, "{}.pdf".format(name))
    plt.savefig(plotPath)
    plt.close()
docs: Plots the convergence graph: touches by columns.