<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_scalar(self, logger, k, v, event_name, global_step):
 """ Helper method to log a scalar with VisdomLogger. Args: logger (VisdomLogger):
 visdom logger k (str):
 scalar name which is used to set window title and y-axis label v (int or float):
 scalar value, y-axis value event_name: Event name which is used to setup x-axis label. Valid events are from :class:`~ignite.engine.Events` or any `event_name` added by :meth:`~ignite.engine.Engine.register_events`. global_step (int):
 global step, x-axis value """

        if k not in self.windows:
            self.windows[k] = {
                'win': None,
                'opts': {
                    'title': k,
                    'xlabel': str(event_name),
                    'ylabel': k,
                    'showlegend': self.show_legend
                }
            }

        update = None if self.windows[k]['win'] is None else 'append'

        kwargs = {
            "X": [global_step, ],
            "Y": [v, ],
            "env": logger.vis.env,
            "win": self.windows[k]['win'],
            "update": update,
            "opts": self.windows[k]['opts'],
            "name": k
        }

        future = logger.executor.submit(logger.vis.line, **kwargs)
        if self.windows[k]['win'] is None:
            self.windows[k]['win'] = future.result()