값 오류: 알 수 없는 투영 '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
.
버전을 실행 중인 경우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
.
Joe Kington의 답변에 덧붙이자면(댓글을 달기에는 충분한 평판이 없음), http://matplotlib.org/examples/mplot3d/mixed_subplots_demo.html 의 설명서에는 2d 플롯과 3d 플롯을 혼합한 좋은 예가 있습니다. 이 그림은 Projection='3d'가 Axes3D 가져오기와 함께 작동하는 것을 보여줍니다.
from mpl_toolkits.mplot3d import Axes3D
...
ax = fig.add_subplot(2, 1, 1)
...
ax = fig.add_subplot(2, 1, 2, projection='3d')
실제로 Axes3D 가져오기가 존재하는 한 라인
from mpl_toolkits.mplot3d import Axes3D
...
ax = fig.gca(projection='3d')
OP가 사용하는 것처럼 또한 작동합니다.(matplotlib 버전 1.3.1에서 확인됨)
"투영 = '3d'를 사용하려면 mplot3d 전체를 가져옵니다.
스크립트 맨 위에 아래 명령을 삽입합니다.잘 작동할 겁니다.
mpl_toolkits 가져오기 mplot3d에서
저는 같은 문제에 직면하고, @Joe Kington과 @bvanlew의 대답은 제 문제를 해결합니다.
하지만 당신이 파이참을 사용하고 활성화할 때 더 많은 정보를 추가해야 합니다.auto import
.
당신이 코드를 포맷할 때, 코드는from mpl_toolkits.mplot3d import Axes3D
Pycharm에 의해 자동으로 제거됩니다.
그래서, 내 해결책은
from mpl_toolkits.mplot3d import Axes3D
Axes3D = Axes3D # pycharm auto import
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
그리고 그것은 잘 작동합니다!
다른 의견에서 권장한 바와 같이 "axes3d"를 가져오는 것으로 문제가 해결되었습니다.
from mpl_toolkits.mplot3d import Axes3D
이전 버전의 matplotlib을 사용하는 경우 이 작업이 필요한 것 같습니다.음모.
사용해 보십시오.
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/valueerror-unknown-projection-3d
'source' 카테고리의 다른 글
jdiv 내의 요소만 직렬화하기 위한 쿼리 (0) | 2023.08.18 |
---|---|
시간을 병렬화할 수 있는 방법이 있습니까?바둑에서 효과적인 실행 시간을 지키면서 잠은 자나요? (0) | 2023.08.18 |
addEventListener 및 getElementsByClassName을 사용하여 요소 ID 전달 (0) | 2023.08.18 |
jquery/javascript를 통해 추가하는 방법은 무엇입니까? (0) | 2023.08.18 |
새 창에서 링크를 열려면 어떻게 해야 합니까? (0) | 2023.08.18 |