get_axes not present?

Mahmood Naderan nt_mahmood at yahoo.com
Sun Nov 21 11:39:14 EST 2021


>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.


Regards,
Mahmood



More information about the Python-list mailing list