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

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

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

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

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

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

pandas

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

Q&A

1回答

2241閲覧

CSVデータをpandasで読み込み、複数のグラフを表示させたいけど、うまくいきません。

matsuo_basho

総合スコア88

Matplotlib

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

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

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

pandas

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

0グッド

0クリップ

投稿2020/11/11 15:53

お世話になっております。
csvで取得したデータを複数の添付画像の様にグラフで表示をしたいのですが、上手くいきません。
色々と試して見たのですが、たどり着いた結果が以下のコードで応すれば良いのか割らない状態です。

どなたか添付画像の様なグラフ表示の仕方をご存知の方がいらっしゃる方がいればご教授いただけると幸いです。

お忙しいところ大変恐縮ですが、宜しくお願い申し上げます。

csv

1期間,売上 22020/10/26 0:00,4886 32020/10/26 1:00,142 42020/10/26 2:00,4886 52020/10/26 3:00,531 62020/10/26 4:00,4886 72020/10/26 5:00,531 82020/10/26 6:00,4886 92020/10/26 7:00,5132 102020/10/26 8:00,4886 112020/10/26 9:00,531 122020/10/26 10:00,4886 132020/10/26 11:00,631 142020/10/26 12:00,6 152020/10/27 0:00,4886 162020/10/27 1:00,4886 172020/10/27 2:00,98 182020/10/27 3:00,4886 192020/10/27 4:00,9876 202020/10/27 5:00,3215 212020/10/27 6:00,2111 222020/10/27 7:00,3333 232020/10/27 8:00,8728 242020/10/27 9:00,3512 252020/10/27 10:00,4886 262020/10/27 11:00,61 272020/10/27 12:00,4886

python

1import locale 2import pandas as pd 3import matplotlib.pyplot as plt 4 5 6# 日本語化 7plt.rcParams['font.family'] = 'MS Gothic' 8 9# 曜日を扱うための設定 10locale.setlocale( locale.LC_TIME, 'ja_JP.UTF-8' ) 11 12my_data = 'report/test.csv' 13 14df = pd.read_csv( my_data, 15 index_col = 0, 16 usecols = ['期間', '売上'], 17 parse_dates = True 18 ) 19 20df1 = df.loc['2020-10-26', '売上'] 21df2 = df.loc['2020-10-27', '売上'] 22 23df1.index = df1.index.strftime( "%m/%d(%a)" ) 24df2.index = df2.index.strftime( "%m/%d(%a)" ) 25 26# グラフの位置 27ax1 = plt.subplot( 2, 1, 1 ) 28ax2 = plt.subplot( 2, 1, 2 ) 29 30# プロット 31ax1.plot( df1 ) 32ax2.plot( df2 ) 33 34# グラフ表示 35plt.show() 36

現実の結果

イメージ説明

理想の結果

イメージ説明

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

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

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

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

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

guest

回答1

0

以下を試してみてください。
indexを文字列ではなくint型にしました。
(なお、月日の情報は落として時刻だけにしました。そうしないと別日のグラフを重ね合わせることができません。代わりに凡例やタイトルをつけるといいかもしれません)

python3

1import locale 2import pandas as pd 3import matplotlib.pyplot as plt 4 5 6# 日本語化 7plt.rcParams['font.family'] = 'MS Gothic' 8 9# 曜日を扱うための設定 10locale.setlocale( locale.LC_TIME, 'ja_JP.UTF-8' ) 11 12my_data = 'report/test.csv' 13 14df = pd.read_csv( my_data, 15 index_col = 0, 16 usecols = ['期間', '売上'], 17 parse_dates = True 18 ) 19keys = [k for k in df.resample("D").indices] 20 21df1 = df.loc['2020-10-26', '売上'] 22df2 = df.loc['2020-10-27', '売上'] 23 24df1.index = df1.index.strftime("%H").astype("int") 25df2.index = df2.index.strftime("%H").astype("int") 26 27# グラフの位置 28fig = plt.figure() 29ax0 = fig.add_subplot( 3, 1, 1 ) 30ax1 = fig.add_subplot( 3, 1, 2 ) 31ax2 = fig.add_subplot( 3, 1, 3 ) 32 33# プロット 34ax0.plot( df1 ) 35ax0.plot( df2 ) 36ax1.plot( df1 ) 37ax2.plot( df2 ) 38 39# グラフ表示 40plt.show()

投稿2020/11/11 23:04

編集2020/11/11 23:07
jeanbiego

総合スコア3966

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

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

matsuo_basho

2020/11/12 15:55

すごい、、天才ですね、、。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問