def test_generate_plot_command_returns_correct_string_for_sample_log(self): kwargs = copy(LINE2D_KWARGS) kwargs["drawstyle"] = 'steps-post' kwargs.update({ "LogName": "my_log", "ExperimentInfo": 0, "Filtered": True }) # add a log AddTimeSeriesLog(self.test_ws, Name="my_log", Time="2010-01-01T00:00:00", Value=100) AddTimeSeriesLog(self.test_ws, Name="my_log", Time="2010-01-01T00:30:00", Value=15) AddTimeSeriesLog(self.test_ws, Name="my_log", Time="2010-01-01T00:50:00", Value=100.2) line = self.ax.plot(self.test_ws, **kwargs)[0] output = generate_plot_command(line) expected_command = ("plot({}, {})".format( self.test_ws.name(), convert_args_to_string(None, kwargs))) self.assertEqual(expected_command, output)
def test_generate_plot_command_returns_correct_string_for_line2d(self): kwargs = copy(LINE2D_KWARGS) kwargs.update(MANTID_ONLY_KWARGS) line = self.ax.plot(self.test_ws, **kwargs)[0] output = generate_plot_command(line) expected_command = ("plot({}, {})".format( self.test_ws.name(), convert_args_to_string(None, kwargs))) self.assertEqual(expected_command, output)
def generate_plot_command(artist): pos_args = get_plot_command_pos_args(artist) kwargs = get_plot_command_kwargs(artist) if isinstance(artist, ErrorbarContainer) and not errorbars_hidden(artist): base_command = BASE_ERRORBAR_COMMAND else: base_command = BASE_CREATE_LINE_COMMAND arg_string = convert_args_to_string(pos_args, kwargs) return base_command.format(arg_string)
def test_generate_plot_command_returns_correct_string_for_errorbar_container( self): kwargs = copy(ERRORBAR_KWARGS) kwargs.pop('markeredgewidth') kwargs.update(MANTID_ONLY_KWARGS) err_cont = self.ax.errorbar(self.test_ws, **kwargs) output = generate_plot_command(err_cont) expected_command = ("errorbar({}, {})".format( self.test_ws.name(), convert_args_to_string(None, kwargs))) self.assertEqual(expected_command, output)
def generate_plot_2d_command(artist, ax_object_var): lines = [] pos_args = get_plot_command_pos_args(artist) kwargs = get_plot_command_kwargs(artist) if isinstance(artist, AxesImage): base_command = BASE_IMSHOW_COMMAND else: base_command = BASE_PCOLORMESH_COMMAND arg_string = convert_args_to_string(pos_args, kwargs) lines.append( f"{CFILL_NAME} = {ax_object_var}.{base_command}({arg_string})") cbar_lines, cbar_headers = get_colorbar(artist, CFILL_NAME, ax_object_var) lines.extend(cbar_lines) return lines, cbar_headers
def test_convert_args_to_string_returns_correct_string(self): kwargs_dict = OrderedDict({ 'key0': 'val0', 'key1': [2, 'str'], 'key2': 1, 'key3': { 'a': 1.1, 'b': { 'c': ['str2', 1.1] } }, 'ndarray': array([1.1, 1.2]) }) expected_str = ( "key0='val0', key1=[2, 'str'], key2=1, key3={'a': 1.1, " "'b': {'c': ['str2', 1.1]}}, ndarray=[1.1, 1.2]") self.assertEqual(expected_str, convert_args_to_string(None, kwargs_dict))
def test_generate_plot_2d_command_returns_correct_string_for_colorfill( self): kwargs = copy(CFILL_KWARGS) kwargs.update(MANTID_ONLY_KWARGS) cfill = self.ax.imshow(self.test_ws, **CFILL_KWARGS) self.fig.colorbar(cfill, ax=[self.ax]) output, headers = generate_plot_2d_command(cfill, "axes") arg_string = convert_args_to_string([self.test_ws], kwargs) expected_command = [ f"{CFILL_NAME} = axes.imshow({arg_string})", f"{CFILL_NAME}.set_norm(plt.Normalize(vmin=", f"cbar = fig.colorbar({CFILL_NAME}, ax=[axes], pad=0.06)" ] self.assertEqual(len(expected_command), len(output)) self.assertEqual(len(headers), 0) for line_no in range(len(output)): # only compare to the length of the expected output # as one line is truncated on purpose self.assertEqual(expected_command[line_no], output[line_no][:len(expected_command[line_no])])
def generate_legend_commands(legend): """ Generates a string containing a comma separated list of kwargs to set legend properties. """ kwargs = get_legend_command_kwargs(legend) return convert_args_to_string([], kwargs)
def generate_subplots_command(fig): kwargs = get_subplots_command_kwargs(fig) kwargs = _remove_kwargs_if_default(kwargs) return BASE_SUBPLOTS_COMMAND.format(convert_args_to_string(None, kwargs))