2017-05-27 135 views
0

我處於學習Python編碼的早期階段,對我來說是如此光禿禿的。目前,我正在嘗試跟隨Sentdex YouTube教程視頻(https://www.youtube.com/watchv=cExOVprMlQg&list=PLQVvvaa0QuDe6ZBtkCNWNUbdaBo2vA4RO),但是我遇到了plt.show()的一些困難。我已經寫了這個腳本幾乎逐字按照這個視頻詳細,我已經轉向StackOverflow更新任何語法,但我一直無法實際查看此圖。當我運行腳本時,沒有任何東西出現,shell只是吐出'>>'。我改變了後端,unistalled,升級並重新安裝了matplotlib。我也試過這個腳本,在這個視頻中看到的Python的確切版本以及3.6.1和其他一些OS X和Windows 10上的Parallels - 仍然遇到同樣的問題。matplotlib問題 - plt.show()沒有正確執行

這裏是我的代碼至今:

import matplotlib 
import matplotlib.pyplot as plt 
import matplotlib.ticker as mticker 
import matplotlib.dates as mdates 
import numpy as np 
import pylab 


def graphRawFX(): 
    date, bid, ask = np.loadtext('GBPUSD1d.txt', unpack=True, 
           delimiter='-', 
           converters={0: mdates.strpdate2numb('%Y%m%d%H%M%S')}) 

    fig = plt.figure(figsize=(10,7)) 

    ax1 = plt.subplot2grid((40,40), (0), rowspan=40, colspan=40) 
    ax1.plot(date, bid) 
    ax1.plot(date, ask) 

    ax1.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m-%d %H:#M:#S')) 
    for label in ax1.axis,get_xticklabels(): 
     label.set_rotation(45) 

    ply.gca().get_yaxis().get_major_formatter().set_useOffset(False) 


    plt.grid(True) 
    plt.show() 
    pylab.show()        

上的解決方案有什麼想法?

回答

2

您定義了一個繪製功能。但是你永遠不會調用這個函數!從python的角度來看,你的腳本是空的。

最後加上graphRawFX(),沒有任何縮進來實際調用函數。

如果此代碼通過任何方式不完整而不是您的問題,請檢查您的安裝並清理代碼。整個導入pylab的東西看起來不需要。還有ply不存在等等。從基礎知識,官方示例和文檔開始,而不是一些使用大量(高級)內容的yt-video。

+0

這是我的輸出後,你的建議:Traceback最後調用): 文件 「/Users/michaelsylvia/Documents/sentdexi.py」,第29行,在 graphRawFX() 文件 「/Users/michaelsylvia/Documents/sentdexi.py」,10號線,在graphRawFX 日期,bid,ask = np.loadtext('GBPUSD1d.txt',unpack = True, AttributeError:module'numpy'has no attribute'loadtext'import pylab was a answer to a similar question。I realize that I'm facing a steep學習曲線,這是說我不確定的代碼woul不會在相同的情況下運行。 – msylvia1012

+1

函數被重命名或者您的代碼是假的(有loadtxt)。嚴重的是,請按照我的建議:不要複製粘貼來自某個未知來源的舊代碼(可能無法從今天開始安裝)。以matplotlib官方文檔爲基礎,先嚐試簡單的事情! – sascha

+1

是的,開始很多*多*簡單,並花時間。也許找到更新的視頻會有所幫助,或者更基本的python教程(忘記matplotlib,只關注python) – mwm314

0

我讓它工作(mac OS)。只要嘗試複製粘貼,看看是否有一些打字問題。 (這是工作沒有「import pylab」和「pylab.show()」我剛剛把它與你有相同的代碼。

import matplotlib 
import matplotlib.pyplot as plt 
import matplotlib.ticker as mticher 
import matplotlib.dates as mdates 
import numpy as np 
import pylab 

def graphRawFX(): 
     date,bid,ask = np.loadtxt('GBPUSD1d.txt', unpack=True, delimiter=',',converters={0:mdates.strpdate2num('%Y%m%d%H%M%S')}) 

     fig = plt.figure(figsize=(10,7)) 
     ax1 = plt.subplot2grid((40,40), (0,0), rowspan=40, colspan=40) 

     ax1.plot(date,bid) 
     ax1.plot(date,ask) 
     plt.gca().get_yaxis().get_major_formatter().set_useOffset(False) 

     ax1.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d %H:%M:%S')) 
     for label in ax1.xaxis.get_ticklabels() : 
       label.set_rotation(45) 

     ax1_2=ax1.twinx() 
     ax1_2.fill_between(date,0, (ask-bid),facecolor='g',alpha=.3) 

     plt.subplots_adjust(bottom=.23) 

     plt.grid(True) 
     plt.show() 
     pylab.show() 

graphRawFX()