これは宿題ではなく、自己学習のためで、私は大学院生です。 私はPythonとmatplotlibの新人です。私は自分の仕事の一部をすぐにプロットするためにmatplotlibが必要になるので、自分自身にクラッシュコースを提供しようとしています。私は現在、いくつかのYoutubeのチュートリアルに従って両方について少し学びたいと思っています。このコードが私のために動かない理由を理解する必要があります。なぜなら、残りのチュートリアルではこのコードを実行する必要があるからです。Python 3.5.2インターネットからデータをロード
このコードはチュートリアルから直接コピーされていますが、私は失敗しますが、ビデオ作成者の方にはうってつけです。私は、ビデオのものと無関係に構文を何度も再確認し、同様の問題を抱える人々のために働くいくつかのソリューションをコメントセクションで試しました。
違いは、Pythonの人々のバージョンから来たようです。 Mineは現在Python 3.5.2です。 コードは、Webからストックデータを取り出し、時間をPythonに適した形式に変換してグラフ化することになっています。 誰かが私のpythonバージョンのためにこれをどうやって得るのか考えていますか?私はプロットについて学ぶために私の本来の目的を継続することができますか?
変更インポートurllibはこの小さな変更は明らかに他の人のために働いている
import urllib.request
に:問題解決しようとする試みの
Traceback (most recent call last):
File "load_from_internet.py", line 35, in <module>
graph_data('TSLA')
File "load_from_internet.py", line 16, in graph_data
source_code = urllib.request.urlopen(stock_price_url).read().decode()
AttributeError: module'urllib' has no attribute 'urlopen'
例:次のエラーが生成さ
import matplotlib.pyplot as plt
import numpy as np
import urllib
import matplotlib.dates as mdates
def bytespdate2num(fmt, encoding='utf-8'):
strconverter = mdates.strpdate2num(fmt)
def bytesconverter(b):
s = b.decode(encoding)
return strconverter(s)
return bytesconverter
def graph_data(stock):
stock_price_url = 'http://chartapi.finance.yahoo.com/*instrument/1.0/'+stock+'/chartdata;type=quote;range=10y/csv'
source_code = urllib.urlopen(stock_price_url).read().decode()
stock_data = []
split_source = source_code.split('\n')
for line in split_source:
split_line = line.split(',')
if len(split_line) == 6:
if 'values' not in line:
stock_data.append(line)
date, closep, highp, lowp, openp, volume = np.loadtxt(stock_data, delimiter =',', unpack=True, converters={0: bytespdate2num('%Y%m%d')})
plt.plot_date(date, closep)
plt.xlabel('Date')
plt.ylabel('Price')
plt.title('Load from file\nInteresting graph')
plt.legend()
plt.show()
graph_data('TSLA')
さまざまなバージョンのPythonがありますが、私にとってはそうではありません。私はurlib.requestとは異なるエラーを取得:
Traceback (most recent call last):
File "load_from_internet.py", line 35, in <module>
graph_data('TSLA')
File "load_from_internet.py", line 16, in graph_data
source_code = urllib.request.urlopen(stock_price_url).read().decode()
File "C:\Users\myfiles\Anaconda3\lib\urllib\request.py", line 163, in urlopen
File "C:\Users\myfiles\Anaconda3\lib\urllib\request.py", line 472, in open
File "C:\Users\myfiles\Anaconda3\lib\urllib\request.py", line 582, in http_response
File "C:\Users\myfiles\Anaconda3\lib\urllib\request.py", line 444, in _call_chain
File "C:\Users\myfiles\Anaconda3\lib\urllib\request.py", line 590, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found
PSチュートリアルの全体のポイントは、どの(インターネットから株価データを引き出し、それをプロットした後、さらにチュートリアルは、それが生成するグラフをカスタマイズするためのものであることです私が何を学びたいか)。チュートリアルでは、現在の変換で何が起こっているのか分からない場合、その変換で起こっていることを理解していないということは、それを修正することができません!
だから、どんな助けでも本当に感謝しています。 ありがとう!
* *、*「それは私のために失敗した」「コードが実行されません」 *どうしてですか?間違いはありますか?その場合は、* complete *エラーメッセージを表示してください。予期しない結果が生じるか?そうであれば、結果を表示または説明し、あなたが期待したことを説明してください。 –
'import urllib'を' import urllib.request'に変更しただけでなく、 'urllib.request.urlopen'を' urllib.urlopen'に変更したと言っています。それはコピー貼り付けの間違いですか?また、コードが失敗した場合、*あなたは何のエラー*を受け取りますか、または予期される結果の代わりに何が起こりますか? – Adalee
私が言ったように、私はPythonには新しく、なんらかの理由でもエラーを見ることはできません。スクリプトをダブルクリックして実行すると、すぐにプロンプトが開き、その後すぐに閉じてエラーを読むことができます。だからはい "それは私のために失敗する"。私がエラーを見ることができたなら、私はそれを投稿したでしょう。結果はまったく生成されません。私は今まで問題なくファイルからデータをプロットしてきました。結果は、x軸の日付とy軸の終了株価のグラフでなければなりません。プロンプト/エラー画面は、エラーを読み取るのに十分な長さではなく、1秒間隔で開き、再び閉じます。 – beeeepmeeeep