質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

609閲覧

Pythonでローソク足チャートを作りたい

p_q_

総合スコア35

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/03/21 12:56

Pythonでローソク足チャートを作ろうと思いまして、色々調べているのですが、全てに共通するのがCSVファイルから読み込んだデータをグラフに描画するものでした。

しかし、私はCSVファイルを使わずあるサイトのapiを叩きそれを直接グラフに描画したいのです。1時間分の1分足データの始値、高値、安値、終値、出来高がそれぞれリストに格納している状態までできましたが、そこからローソク足チャートを作るにはどのようにしたらようでしょうか。

ちなみに下記をインポートした際に
import matplotlib.finance as mpf
サポートされていない...云々が書かれていたので、mpl_financeというモジュールをインストールしました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tell_k

2018/03/21 13:06

どこまでやったのか、簡潔なコード例などがあると回答がつきやすいと思います。
p_q_

2018/03/21 13:22

情報不足ですみません。Open = [987659.....] High = [987543.......] Low = [985432.....] Close = [986543....]というように、それぞれ1分足データが60個ずつはいっています。
KojiDoi

2018/03/21 14:29

つまり「apiをたたいてデータを取り込む」ところと「csv経由のデータからグラムを書く」ところは既にできているということですか。であれば組み合わせるだけですね。組み合わせ方がわからないという話なら、すでに用意できたデータがどういう形になっているのかが示されないと具体的なアドバイスは難しいでしょう。
sho_shin_sha

2018/04/04 06:49

ビットコインのデータですか?
guest

回答3

0

ベストアンサー

取得した各リストをzip()使ってOHLC形式のデータにまとめるだけで表示できると思います。

Python

1import datetime as dt 2import numpy as np 3import matplotlib.pyplot as plt 4import matplotlib.dates as mdates 5from mpl_finance import candlestick_ohlc 6 7# ダミーデータの生成 8N = 60 9Open = np.random.uniform(100,200,N) 10Close = np.random.uniform(100,200,N) 11High = np.maximum(Open,Close) + np.random.uniform(0,50,N) 12Low = np.minimum(Open,Close) - np.random.uniform(0,50,N) 13Date = [dt.datetime(2018,1,1,9,0) + dt.timedelta(minutes=m) for m in range(N)] 14 15# データをOHLC形式に変換 16ohlc = zip(mdates.date2num(Date),Open, High, Low, Close) 17 18# ローソクチャートを表示 19ax = plt.subplot() 20ax.xaxis.set_major_locator(mdates.MinuteLocator([0,15,30,45])) 21ax.xaxis.set_major_formatter(mdates.DateFormatter('%m/%d %H:%M')) 22candlestick_ohlc(ax, ohlc, width=(1/24/60)*0.7) 23plt.show()

投稿2018/03/22 00:55

magichan

総合スコア15898

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Pythonでローソク足チャートを作ろうと思いまして、色々調べているのですが、全てに共通するのがCSVファイルから読み込んだデータをグラフに描画するものでした

上記のcsvファイルを読み込んだ結果がDataFrame形式になっているようであれば、手元にあるデータをDataFrame形式に変換して調べた内容の通りにグラフ化処理を実行すればいいことになります。

matplotlib.financeのモジュールを使用したローソクチャートを作成するのであれば、データ形式はリスト・array・DataFrame・Seriesに対応しているはずなので、手元にあるデータを作成したいチャートの関数に合わせて設定してあげればいいかと思います。
仕様は、公式ドキュメントの以下を参考に実現したいチャートの種類に合わせてください。
https://matplotlib.org/api/finance_api.html

なお、実際の作成例については、以下の記事が参考になるかと思います。
https://qiita.com/toyolab/items/1b5d11b5d376bd542022

投稿2018/03/21 17:34

R.Shigemori

総合スコア3376

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

csvから読み込む楽々な方法といえばpandasを使っているのでしょうか?

https://qiita.com/richi40/items/6b3af6f4b00d62dbe8e1

リストからpandasのデータフレームを作る方法です。

投稿2018/03/21 14:57

mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問