tecan / ttc21incrementalLabWorkflows

This repository contains the code for the Incremental Laboratory Workflow case at the TTC 2021
MIT License
0 stars 3 forks source link

python plotting does not work on windows #1

Open azuendorf opened 3 years ago

azuendorf commented 3 years ago

Hi, running the reference solution I get an error in the plotting phase. See below. I use python 3.9

Printing diagram for scenario = scale_samples, phase = Initial Traceback (most recent call last): File "C:\Python39\lib\site-packages\matplotlib\axis.py", line 1500, in convert_units ret = self.converter.convert(x, self.units, self) File "C:\Python39\lib\site-packages\matplotlib\category.py", line 49, in convert raise ValueError( ValueError: Missing category information for StrCategoryConverter; this might be caused by unintendedly mixing categorical and numeric data

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "C:\Users\zuend\IdeaProjects\TTC2021LabWorkflow\ttc21incrementalLabWorkflows\scripts\run.py", line 167, in visualize(config) File "C:\Users\zuend\IdeaProjects\TTC2021LabWorkflow\ttc21incrementalLabWorkflows\scripts\run.py", line 125, in visualize _visualize(scenario.Name, timesForScenario, 'Time', 'ms', 0.000001) File "C:\Users\zuend\IdeaProjects\TTC2021LabWorkflow\ttc21incrementalLabWorkflows\scripts\run.py", line 104, in _visualize plot = results.plot(logx=True,xticks=sizes) File "C:\Python39\lib\site-packages\pandas\plotting_core.py", line 955, in call return plot_backend.plot(data, kind=kind, *kwargs) File "C:\Python39\lib\site-packages\pandas\plotting_matplotlib__init__.py", line 61, in plot plot_obj.generate() File "C:\Python39\lib\site-packages\pandas\plotting_matplotlib\core.py", line 283, in generate self._adorn_subplots() File "C:\Python39\lib\site-packages\pandas\plotting_matplotlib\core.py", line 500, in _adorn_subplots ax.set_xticks(self.xticks) File "C:\Python39\lib\site-packages\matplotlib\axes_base.py", line 73, in wrapper return get_method(self)(args, **kwargs) File "C:\Python39\lib\site-packages\matplotlib\axis.py", line 1814, in set_ticks ticks = self.convert_units(ticks) File "C:\Python39\lib\site-packages\matplotlib\axis.py", line 1502, in convert_units raise munits.ConversionError('Failed to convert value(s) to axis ' matplotlib.units.ConversionError: Failed to convert value(s) to axis units: array(['1', '16', '2', '32', '4', '8'], dtype=object)

C:\Users\zuend\IdeaProjects\TTC2021LabWorkflow\ttc21incrementalLabWorkflows>

azuendorf commented 3 years ago

my reporting.json is:

{ "Dimensions": { "X_Dimensions": { "Size": true, "Iteration": true }, "Groups": { "Query": true, "Tool": true } }, "Summarize_Functions": [ { "Phases": [ "check", "transformation" ], "Metric": "time", "Y_Label": "Time (ms)", "Y_Axis_Scale": -6 }, { "Phases": [ "result" ], "Metric": "scalar", "Y_Label": "Invalid elements", "Y_Axis_Scale": 0 } ], "Extension": ["png", "pdf"] }

georghinkel commented 3 years ago

The reporting.json is ignored now since I changed the plotting from R to Python in order to reduce dependencies (and because I had some trouble with R, lately). The problem here is that I cannot reproduce, with Python Anaconda 3.7.4, everything is good.

The problem seems to be that it is not picking up the right data type and thinks that the size row is objects. I will see whether I can fix this.

georghinkel commented 3 years ago

What versions of matplotlib and pandas do you have? I have 3.1.1 and 0.25.1, respectively. Could it be that you output the model sizes in quotes? I believe this would make pandas think that the data is categorial. Without quotes, I see no reason that pandas should declare it as objects.

azuendorf commented 3 years ago

Well, this seems to be a blody windows problem. Could you by any chance provide a docker container with a running installation that I could use?