Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AttributeError: 'Bbox' object has no attribute 'intersection' #60

Closed
leefangu opened this issue Aug 11, 2018 · 8 comments
Closed

AttributeError: 'Bbox' object has no attribute 'intersection' #60

leefangu opened this issue Aug 11, 2018 · 8 comments

Comments

@leefangu
Copy link

I did not installed the package since I don't have the privilege to install any packages on our server . So I copied all the code to my project. However, I am not able to call adjust_text function. I am getting below error all the time:
AttributeError: 'Bbox' object has no attribute 'intersection'

Please help and thank you so much.
Frank

@Phlya
Copy link
Owner

Phlya commented Aug 12, 2018

Can you please show the full traceback? And a minimal reproducible example?

@leefangu
Copy link
Author

import matplotlib
matplotlib.use('Agg')
from adjustText import *
import numpy as np

np.random.seed(0)
x, y = np.random.random((2,30))
fig, ax = plt.subplots()
plt.plot(x, y, 'bo')
texts = [plt.text(x[i], y[i], 'Text%s' %i, ha='center', va='center') for i in range(len(x))]
adjust_text(texts)

The above code is saved in a file named test.py on the company's server in the folder /home/p57400/ERSSatisfaction/code/. I then executed the code using below command:
/usr/hdp/2.5.3.0-37/spark/bin/spark-submit /home/p57400/ERSSatisfaction/code/test.py
And below is the error I got after I executed it:

Traceback (most recent call last):
File "/home/p57400/ERSSatisfaction/code/test.py", line 11, in
adjust_text(texts)
File "/home/p57400/ERSSatisfaction/code/adjustText.py", line 424, in adjust_text
ax=ax)
File "/home/p57400/ERSSatisfaction/code/adjustText.py", line 125, in optimally_align_text
bboxes+add_bboxes]
AttributeError: 'Bbox' object has no attribute 'intersection'

@leefangu
Copy link
Author

Since I did not see the implementation of function "intersection" anywhere in your code, so is it a function you imported from somewhere else? Also, since I use /usr/hdp/2.5.3.0-37/spark/bin/spark-submit to execute my code, that means the code is running in Pyspark environment. I am not sure if that is the reason causing my issue.

Thanks,

@Phlya
Copy link
Owner

Phlya commented Aug 12, 2018

I can't reproduce this... And I don't know anything about Pyspark, and whether this can cause such issues, sorry.

Intersection is a built-in method of matplotlib BBoxes, so this is very strange.

Can you try to install the package withpip --user? You shouldn't need any privileges for that.

@leefangu
Copy link
Author

can you please check your matplotlib version? I am thinking my version (which is 1.2.0) is too old to have intersection function. You can use below commands to find out the version:

import matplotlib
matplotlib.version

@Phlya
Copy link
Owner

Phlya commented Aug 13, 2018

Wow 1.2??? Yeah, mine is 2.2.2, that's is probably the problem. 1.2 is a very old version!

@leefangu
Copy link
Author

I upgraded matplotlib to 2.2.3 and now it is good. Thank you for the great package!!

@Phlya
Copy link
Owner

Phlya commented Aug 15, 2018

Great, thanks for letting me know!

@Phlya Phlya closed this as completed Aug 15, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants