get_axes not present?

MRAB python at mrabarnett.plus.com
Sun Nov 21 12:44:06 EST 2021


On 2021-11-21 16:39, Mahmood Naderan via Python-list wrote:
>>The best way to get
>>assistance here on the list is to create a minimal, self-contained,
>>run-able, example program that you can post in its entirety here that
>>demonstrates the issue.
> 
> 
> I created a sample code with input. Since the code processes a csv file to group input rows, I also included those in this minimal code but those preprocesses are not buggy. In this sample code, I used print() to print necessary information. The error exists in the plot function. I tested the dictionary build before that and it is fine.
> 
> 
> Code is available at https://pastebin.com/giAnjJDV  and the input file (test.batch.csv) is available https://pastebin.com/Hdp4Wt9B
> 
> The run command is "python3 test.py". With the versions specified in my system, here is the full output:
> 
> 
> 
> 
> 
> $ python3 test.py
> Reading file...
> matplotlib version =  3.3.4
> pandas version =  1.2.3
> sys version sys.version_info(major=3, minor=8, micro=10, releaselevel='final', serial=0)
> Original dictionary =  {'dummy':     Value
> M1      0
> M2      0
> M3      0, 'K1::foo(bar::z(x,u))':    Value  Value
> 0     10      2
> 1      5      2
> 2     10      2, 'K2::foo()':    Value
> 0     20
> 1     10
> 2     15, 'K3::foo(baar::y(z,u))':    Value
> 0     12
> 1     13
> 2     14, 'K3::foo(bar::y(z,u))':    Value
> 0      6
> 1      7
> 2      8}
> New dictionary for plot =  {'dummy':     Value
> M1      0
> M2      0
> M3      0, 'K1::foo(bar::z(x,u))':    Value  Value
> 0     10      2
> 1      5      2
> 2     10      2, 'K3::foo(bar::y(z,u))':    Value
> 0      6
> 1      7
> 2      8}
> Key is  K1::foo(bar::z(x,u))  -> df is     Value  Value
> 0     10      2
> 1      5      2
> 2     10      2
> axes= [<AxesSubplot:> <AxesSubplot:>]
> axes[0]= AxesSubplot(0.125,0.53;0.775x0.35)
> cnt= 1
> row= 1    10
> 2     2
> Name: 0, dtype: int64
> Traceback (most recent call last):
>    File "test.py", line 74, in <module>
>      plot_kernels(my_dict2)
>    File "test.py", line 52, in plot_kernels
>      plot_dataframe(df, cnt, axes)
>    File "test.py", line 36, in plot_dataframe
>      ax1 = row.plot(label=cnt, ax=axes[0], marker='o')   # Line chart
>    File "/home/mahmood/.local/lib/python3.8/site-packages/pandas/plotting/_core.py", line 955, in __call__
>      return plot_backend.plot(data, kind=kind, **kwargs)
>    File "/home/mahmood/.local/lib/python3.8/site-packages/pandas/plotting/_matplotlib/__init__.py", line 61, in plot
>      plot_obj.generate()
>    File "/home/mahmood/.local/lib/python3.8/site-packages/pandas/plotting/_matplotlib/core.py", line 283, in generate
>      self._adorn_subplots()
>    File "/home/mahmood/.local/lib/python3.8/site-packages/pandas/plotting/_matplotlib/core.py", line 483, in _adorn_subplots
>      all_axes = self._get_subplots()
>    File "/home/mahmood/.local/lib/python3.8/site-packages/pandas/plotting/_matplotlib/core.py", line 903, in _get_subplots
>      ax for ax in self.axes[0].get_figure().get_axes() if isinstance(ax, Subplot)
> AttributeError: 'NoneType' object has no attribute 'get_axes'
> 
> 
> 
> I am pretty sure that there is a version mismatch because on a system with Pandas 1.3.3 the output should be like https://imgur.com/a/LZ9eAzl
> 
> Any feedback is appreciated.
> 
I installed the latest pandas, although on Python 3.10, and the script 
worked without a problem.


More information about the Python-list mailing list