2016-10-19 14 views
0

嗨,我在ipad上使用Pythonista 3:0。作爲初學者,我下載了一些例子來試用。他們工作了一段時間,但現在當我嘗試運行它們時,沒有任何反應。原始Phthonista安裝中的所有示例程序都能很好地工作。Pythonista用戶啓動的程序不運行

例如,這是行不通的。當我按下三角形時沒有任何反應。 感謝

# -*- coding: utf-8 -*-from mpl_toolkits.mplot3d import Axes3D 
import matplotlib.pyplot as plt 
import numpy as np 
from itertools import product, combinations 
fig = plt.figure() 
ax = fig.gca(projection='3d') 
ax.set_aspect("equal") 

#draw cube 
r = [-1, 1] 
for s, e in combinations(np.array(list(product(r,r,r))), 2): 
    if np.sum(np.abs(s-e)) == r[1]-r[0]: 
     ax.plot3D(*zip(s,e), color="b") 

# draw sphere 
u, v = np.mgrid[0:2*np.pi:20j, 0:np.pi:10j] 
x=np.cos(u)*np.sin(v) 
y=np.sin(u)*np.sin(v) 
z=np.cos(v) 
ax.plot_wireframe(x, y, z, color="r") 

#draw a point 
ax.scatter([0],[0],[0],color="g",s=100) 

#draw a vector 
from matplotlib.patches import FancyArrowPatch 
from mpl_toolkits.mplot3d import proj3d 

class Arrow3D(FancyArrowPatch): 
    def __init__(self, xs, ys, zs, *args, **kwargs): 
     FancyArrowPatch.__init__(self, (0,0), (0,0), *args, **kwargs) 
     self._verts3d = xs, ys, zs 

    def draw(self, renderer): 
     xs3d, ys3d, zs3d = self._verts3d 
     xs, ys, zs = proj3d.proj_transform(xs3d, ys3d, zs3d, renderer.M) 
     self.set_positions((xs[0],ys[0]),(xs[1],ys[1])) 
     FancyArrowPatch.draw(self, renderer) 

a = Arrow3D([0,1],[0,1],[0,1], mutation_scale=20, lw=1, arrowstyle="-|>", color="k") 
ax.add_artist(a) 
plt.show() 

回答

0

在我看來,Pythonista的matplotlib可能從0.9倍到1.x的升級你應該使用不同的語法如下。

# -*- coding: utf-8 -*- 
import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D 
import numpy as np 
from itertools import product, combinations 

fig = plt.figure() 
ax = Axes3D(fig) ## it's different now. 
ax.set_aspect("equal") 
+0

謝謝你的Jak遼 - 我取代你好心提供的代碼,但可惜什麼也沒有發生不運行 – Valavel

0

您使用的應用程序商店版本的pythonista 3?或測試版? 您的代碼在測試中對我的工作非常好(如果我取消註釋導入Axes3D行,否則我會得到關於無效投影的錯誤)

我相信app store版本可能與python 3版本matplotlib(例如,使用自定義後端導致崩潰)。嘗試使用python 2.7解釋器來查看是否有效。

而且,一個共同的問題有些人是他們在現場包或同一文件夾中的腳本來替換一些需要導入創建的.py文件。檢查您的網站包,並確保您刪除或重命名任何名爲numpy或matplotlib的腳本或文件夾,然後強制退出pythonista。

最後,你可以嘗試運行腳本線,看是否有問題的地方。例如通過長按來設置斷點,然後當您按下播放按鈕時,它會詢問您是否要使用調試器。這將讓你檢查plt是私人路徑中的matplotlib.pyplot包。

你可能在pythonista社區論壇或鬆懈頻道上也可能有更好的pythonista問題。

+0

對不起jonB我感謝您在本頁面 - 但沒有連接到您的罰款答案 – Valavel

相關問題