Matplotlib : "알 수없는 투영 '3d'"오류
방금 matplotlib를 설치하고 예제 스크립트 중 하나를 실행하려고합니다. 그러나 아래에 설명 된 오류가 발생합니다. 내가 뭘 잘못하고 있죠?
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.gca(projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)
cset = ax.contour(X, Y, Z, 16, extend3d=True)
ax.clabel(cset, fontsize=9, inline=1)
plt.show()
오류는
Traceback (most recent call last):
File "<string>", line 245, in run_nodebug
File "<module1>", line 5, in <module>
File "C:\Python26\lib\site-packages\matplotlib\figure.py", line 945, in gca
return self.add_subplot(111, **kwargs)
File "C:\Python26\lib\site-packages\matplotlib\figure.py", line 677, in add_subplot
projection_class = get_projection_class(projection)
File "C:\Python26\lib\site-packages\matplotlib\projections\__init__.py", line 61, in get_projection_class
raise ValueError("Unknown projection '%s'" % projection)
ValueError: Unknown projection '3d'
첫째로, 나는 생각 mplot3D
에 약간 다르게 작동 matplotlib
버전 0.99
은 현재 버전에서보다 matplotlib
.
어떤 버전을 사용하고 있습니까? (달려보십시오 :python -c 'import matplotlib; print matplotlib."__version__")
버전을 실행 중이라고 생각합니다.이 0.99
경우 약간 다른 구문을 사용하거나 최신 버전으로 업데이트해야합니다 matplotlib
.
version을 실행중인 경우 keyword 인수 0.99
를 사용하는 대신이를 수행하십시오 projection
.
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d, Axes3D #<-- Note the capitalization!
fig = plt.figure()
ax = Axes3D(fig) #<-- Note the difference from your original code...
X, Y, Z = axes3d.get_test_data(0.05)
cset = ax.contour(X, Y, Z, 16, extend3d=True)
ax.clabel(cset, fontsize=9, inline=1)
plt.show()
이것은 matplotlib
1.0.x
뿐만 아니라 에서 작동해야합니다 0.99
.
Just to add to Joe Kington's answer (not enough reputation for a comment) there is a good example of mixing 2d and 3d plots in the documentation at http://matplotlib.org/examples/mplot3d/mixed_subplots_demo.html which shows projection='3d' working in combination with the Axes3D import.
from mpl_toolkits.mplot3d import Axes3D
...
ax = fig.add_subplot(2, 1, 1)
...
ax = fig.add_subplot(2, 1, 2, projection='3d')
In fact as long as the Axes3D import is present the line
from mpl_toolkits.mplot3d import Axes3D
...
ax = fig.gca(projection='3d')
as used by the OP also works. (checked with matplotlib version 1.3.1)
I encounter the same problem, and @Joe Kington and @bvanlew's answer solve my problem.
but I should add more infomation when you use pycharm and enable auto import
.
when you format the code, the code from mpl_toolkits.mplot3d import Axes3D
will auto remove by pycharm.
so, my solution is
from mpl_toolkits.mplot3d import Axes3D
Axes3D = Axes3D # pycharm auto import
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
and it works well!
Import mplot3d whole to use "projection = '3d'".
Insert the command below in top of your script. It should run fine.
from mpl_toolkits import mplot3d
Try this:
import matplotlib.pyplot as plt
import seaborn as sns
from mpl_toolkits.mplot3d import axes3d
fig=plt.figure(figsize=(16,12.5))
ax=fig.add_subplot(2,2,1,projection="3d")
a=ax.scatter(Dataframe['bedrooms'],Dataframe['bathrooms'],Dataframe['floors'])
plt.plot(a)
참고URL : https://stackoverflow.com/questions/3810865/matplotlib-unknown-projection-3d-error
'IT story' 카테고리의 다른 글
"필수"jQuery 플러그인은 무엇입니까? (0) | 2020.08.06 |
---|---|
프로덕션 웹 응용 프로그램에 대한 초당 "평균"요청은 무엇입니까? (0) | 2020.08.06 |
XDocument와 함께 XPath를 사용하는 방법? (0) | 2020.08.06 |
Windows 서비스에서 사용하기위한 최상의 타이머 (0) | 2020.08.06 |
ASP.Net 양식에 제출 된 게시물 데이터 읽기 (0) | 2020.08.06 |