code: def gnuplot(script_name, args_dict={}, data=[], silent=True):
      '''
      Call a Gnuplot script, passing it arguments and
      datasets.
      Args:
          scipt_name(str): The name of the Gnuplot script.
          args_dict(dict): A dictionary of parameters to pass
              to the script.  The `key` is the name of the variable
              that the `item` will be passed to the Gnuplot script
              with.
          data(list): A list of lists containing lists to be plotted.
              The lists can be accessed by plotting the variable
              `data` in the Gnuplot script.  The first list in the
              list of lists corresponds to the first column in data,
              and so on.
          silent (bool): `True` if Gnuplot stdout should be silenced,
              `False` if not.
      Returns:
          str: The Gnuplot command used to call the script.
      '''
      gnuplot_command = 'gnuplot'
      if data:
          assert 'data' not in args_dict, \
              'Can\'t use \'data\' variable twice.'
          data_temp = _GnuplotDataTemp(*data)
          args_dict['data'] = data_temp.name
      if args_dict:
          gnuplot_command += ' -e "'
          for arg in args_dict.items():
              gnuplot_command += arg[0] + '='
              if isinstance(arg[1], str):
                  gnuplot_command += '\'' + arg[1] + '\''
              elif isinstance(arg[1], bool):
                  if arg[1] is True:
                      gnuplot_command += '1'
                  else:
                      gnuplot_command += '0'
              elif hasattr(arg[1], '__iter__'):
                  gnuplot_command += '\'' + ' '.join([str(v) for v in arg[1]]) + '\''
              else:
                  gnuplot_command += str(arg[1])
              gnuplot_command += '; '
          gnuplot_command  = gnuplot_command[:-1]
          gnuplot_command += '"'
      gnuplot_command += ' ' + script_name
      if silent:
          gnuplot_command += ' > /dev/null 2>&1'
      os.system(gnuplot_command)
      return gnuplot_command