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

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

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

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

859閲覧

matplotlibでx軸y軸共通でローソク足と棒グラフを一つのグラフに描きたいです。

sprod

総合スコア6

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2020/04/20 11:50

data.csvというファイルに下のようなデータがあります。

point,date,open,high,low,close
893,20180222,908,911,893,898
899,20180223,904,920,899,916
923,20180226,929,941,923,938
935,20180227,944,959,935,947

下のコードでローソク足を作れたのですが。ここにx軸とy軸がローソク足と共通でpoint列のデータを棒グラフとして追加したいのですがどのように書けばいいでしょうか?

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import mpl_finance as mpf

book = pd.read_csv("data.csv")

date = book["date"].values
open = book["open"].values
high = book["high"].values
low = book["low"].values
close = book["close"].values
point = book["point"].values

df = pd.DataFrame({'始値':open, '終値':close, '高値':high, '安値':low}, index = date)

plt.figure(figsize=(8, 6))
ax = plt.subplot()
mpf.candlestick2_ohlc(ax, df['始値'], df['高値'], df['安値'], df['終値'], width=0.5, colorup="g", colordown="r")
ax.grid()
ax.legend()

plt.show()

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

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

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

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

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

guest

回答1

0

ベストアンサー

そのまま ax.plot() するだけで書けると思います
そのほか、データフレームの再構築部が冗長な部分とx軸のラベルを直すとこんな感じになります。

Python

1import pandas as pd 2import numpy as np 3import matplotlib.pyplot as plt 4import mpl_finance as mpf 5 6df = pd.read_csv('data.csv', index_col='date') 7df = df.rename({'open':'始値', 'close':'終値', 'high':'高値', 'low':'安値'}, axis=1) 8print(df) 9 10plt.figure(figsize=(8, 6)) 11ax = plt.subplot() 12x = range(len(df)) 13mpf.candlestick2_ohlc(ax, df['始値'], df['高値'], df['安値'], df['終値'], width=0.5, colorup="g", colordown="r") 14ax.plot(x, df['point'], '.-', label='point') 15ax.set_xticks(x) 16ax.set_xticklabels(df.index, rotation=90) 17ax.grid() 18ax.legend() 19plt.show()

一応私が検証で動作確認したコード

Python

1import pandas as pd 2import numpy as np 3import matplotlib.pyplot as plt 4import mpl_finance as mpf 5import io 6 7data = """ 8point,date,open,high,low,close 9893,20180222,908,911,893,898 10899,20180223,904,920,899,916 11923,20180226,929,941,923,938 12935,20180227,944,959,935,947 13""" 14 15df = pd.read_csv(io.StringIO(data), index_col='date') 16df = df.rename({'open':'始値', 'close':'終値', 'high':'高値', 'low':'安値'}, axis=1) 17print(df) 18 19plt.figure(figsize=(8, 6)) 20ax = plt.subplot() 21x = range(len(df)) 22mpf.candlestick2_ohlc(ax, df['始値'], df['高値'], df['安値'], df['終値'], width=0.5, colorup="g", colordown="r") 23ax.plot(x, df['point'], '.-', label='point') 24ax.set_xticks(x) 25ax.set_xticklabels(df.index, rotation=90) 26ax.grid() 27ax.legend() 28plt.show()

イメージ説明

投稿2020/04/29 03:29

編集2020/04/29 03:35
magichan

総合スコア15898

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

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

sprod

2020/04/30 06:13

検証していただいたコードを参考に実行したところ解決しました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問