atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
kohei-hasegawa @ ウィキ
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
kohei-hasegawa @ ウィキ
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
kohei-hasegawa @ ウィキ
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • kohei-hasegawa @ ウィキ
  • トップページ
  • Python講習
  • Excelにはできない体裁のグラフ

kohei-hasegawa @ ウィキ

Excelにはできない体裁のグラフ

最終更新:2020年05月16日 19:48

kohei-hasegawa

- view
メンバー限定 登録/ログイン

5-4.Excelにはできない体裁のグラフ

前節で作ってきた程度のグラフはエクセルでも出来ます.しかし,データ数が膨大になるとエクセルではグラフ作成が出来ないためプログラムによる作図の出番になります.また,Matplotlibに慣れてしまえばわざわざエクセルを介さずに図を書けるというメリットもあります.
しかし,Matplotlibを使う利点はこれだけではありません.Matplotlibでないと出来ないことやMatplotlibでないと面倒なことが多々あります.ここでは,そのいくつかを紹介しましょう.

(1) 何個ものグラフを一度に作成する

プログラムベースで作図を行うMatplotlibなら何個ものグラフを一気に作成することが出来ます.例えば,同じ時系列のデータを折れ線グラフとして地点ごとに作成するようなケースです.オブジェクト指向ライティングで説明したように,MatplotlibではFigオブジェクトにおいて指定したグリットにグラフであるAxesオブジェクトを配置できます.これを利用すると地点ごとの系列データを一気にグラフ化出来ます.
例題として,25地点の時系列データを5×5の折れ線グラフに表現するとしましょう.まずはimportやFigureオブジェクトの生成を行います.

>>> import numpy as np
>>> from numpy.random import randint
>>> fig = plt.figure(figsize=(10,10))

次にnp.random.randintで25地点における20年分のランダムなデータとx軸となる20年分の整数順列を作ってみましょう.

>>> data = randint(0,100,(25,20+1))
>>> x = list(range(0,20+1))

ここからが肝です.生成したdata配列の1行を1地点と捉え,それを順次25地点まで別々のグラフにプロットしていきます.使用する関数はfig.add_subplot(a,b,c)です.これは,説明したようにa×bにグラフを分割した際のc番目にグラフを生成するというものでした.ということは,5×5のグラフ空間を定義してそこにグラフを順番に生成していけばいいのです.

  1. for i in range (0,25):
  2. ax = fig.add_subplot(5,5,i+1)
  3. ax.plot(x,data[i],color=”k”)
  4.  

そして,いつもどおりに体裁を整えていきます.また,どの地点だかが分かるように各グラフにタイトルax.set_title()で入れましょう.

  1. for i in range (0,25):
  2. ax = fig.add_subplot(5,5,i+1)
  3. ax.plot(x,data[i],color=”k”)
  4. ax.tick_params(direction="in",right="on",top="on",which="both")
  5. ax.set_xlabel("Year")
  6. ax.set_ylabel("demand")
  7. ax.set_xlim([0,20])
  8. ax.set_ylim([0,100])
  9. ax.set_title("Point"+str(i+1))
  10.  

この時点のグラフをplt.show()で出力してみましょう.この時点では様々な問題が残されていることが分かります.問題は以下のとおりです.

[修正前のグラフ]

(1) x軸の目盛ラベルとグラフタイトルが重なっている
(2) x軸の軸タイトルが下のグラフと重なって無くなっている
(3) y軸の目盛ラベルと隣のグラフが重なっている
(4) y軸の軸タイトルが隣のグラフが重なっている
(5) x軸の目盛が一つしかない

(1)と(2)に関しては,xは最下行,つまり5行目だけにx軸の目盛ラベルや軸タイトルがあれば十分なはずです.また,(3)と(4)も最前列である1行目に目盛ラベルや軸タイトルがあれば十分なはずです.これらを実行するには不要な行の目盛ラベルを削除し,不要な行の軸タイトルは挿入しないというアクションが必要になります.(5)に関しては有名なAxes.set_○ticksオプションがあります.目盛ラベルを削除するにはAxes.axis.set_ticklabels([])という記法が有名です.


matplotlib.axes.set_○ticks(list[,minor=False])
指定した○軸にlistに応じた軸目盛を挿入します.minorオプションはminorticksを使用するかどうかを指定します.


  1. for i in range (0,25): #The way of thinking #答えはp.113にあります
  2. ax.set_xticks((range(0,20+1,5))) #0,5,10,15,20
  3. if i - 20 >= 0: #20,21,22,23,24 = True = bottom row
  4. ax.set_xlabel("Year")
  5. else:
  6. ax.xasis.set_ticklabels([])
  7. if i % 5 ==0: # 0,5,10,15,20 = True = First column
  8. ax.set_ylabel(“demand”)
  9. else:
  10. ax.yaxis. set_ticklabels([])
  11.  

[修正後のグラフ]

これらの修正により実用に耐えうるグラフ集が完成しました.このようにして地点ごとの時系列データを可視化し,視覚的な比較を可能にすることで可視化する前は見えなかった地点ごとの特徴などが発見され,論文などの考察をより良いものにしてくれるでしょう.
最終的なコードをfive_five.pyとして実行してみましょう.

five_five.py
  1. from numpy.random import randint
  2. import matplotlib.pyplot as plt
  3. fig = plt.figure(figsize=(10,10))
  4. data = randint(0,100,(25,20+1))
  5. x = list(range(0,20+1))
  6. for i in range (0,25):
  7. ax = fig.add_subplot(5,5,i+1)
  8. ax.plot(x,data[i],color="k")
  9. ax.tick_params(direction="in",right=True,top=True,which="both")
  10. ax.set_xlim([0,20])
  11. ax.set_ylim([0,100])
  12. ax.set_title("Point"+str(i+1))
  13. ax.set_xticks((range(0,20+1,5)))
  14. if i - 20>=0: #20,21,22,23,24 = True = bottom row
  15. ax.set_xlabel("Year")
  16. else:
  17. ax.xaxis.set_ticklabels([])
  18. if i % 5 ==0: # 0,5,10,15,20 = True = First column
  19. ax.set_ylabel("demand")
  20. else:
  21. ax.yaxis.set_ticklabels([])
  22.  


次へ
「Excelにはできない体裁のグラフ」をウィキ内検索
LINE
シェア
Tweet
添付ファイル
  • 図1.png
  • 図2.png
kohei-hasegawa @ ウィキ
記事メニュー
メニューを編集

メニュー

トップページ
  • 体裁全般
    • 図表
    • 引用
    • 数式
    • 文章表現
    • ソースコード
  • Officeテンプレ
  • Office Tips
  • 仕事Tips
  • 研究Tips
    • 文献レビュー
    • プレゼンの作り方
    • タスクスケジューラのすゝめ
  • 学位論文
    • 卒業論文
    • 修士論文
    • 博士論文
    • よく使う図表
  • 雑務Tips
    • プレゼン発表練習会
    • M1中間ポスター発表
    • 年度末大掃除
    • D論公聴会
    • 新歓BBQ
    • ソウル東京
    • 製本機の使い方
    • コピー機の使い方
    • 研究室紹介
  • 英語関係
    • 校正全般
    • 自己紹介(Biography)
    • 校正業者の活用方法
    • 英語プレゼン
    • 使えそうな例文
  • 論文執筆
    • タイトル
    • アブストラクト
    • 結果と考察
  • 勉強会
  • Python講習
  • 長谷川の遊び場
    • ダンピング対策状況マップ
    • Twitter拾い物
    • お引越しメモ
    • 本棚
    • 長谷川冒険記

Wiki編集方法

リンク

  • 長谷川のHP
  • 長谷川の予定



記事メニュー2

更新履歴

取得中です。

閲覧数ランキング(昨日)

  • トップページ/長谷川の遊び場/本棚 (2)
  • トップページ/長谷川の遊び場/Twitter拾い物 (2)
  • トップページ/Python講習/課題5 (2)
  • トップページ (1)
  • トップページ/Python講習/1章まとめ (1)

閲覧数ランキング(累計)

  • トップページ (4261)
  • トップページ/Python講習 (805)
  • トップページ/雑務Tips/D論公聴会 (578)
  • トップページ/学位論文/博士論文 (479)
  • トップページ/Python講習/オブジェクト指向で体裁を整える (392)
  • トップページ/体裁全般/文章表現 (370)
  • トップページ/長谷川の遊び場/本棚 (345)
  • トップページ/勉強会 (287)
  • トップページ/Office Tips (248)
  • トップページ/Python講習/他にも色々あります (234)


ここを編集
人気記事ランキング
  1. トップページ/Python講習/Pythonを使ってみよう
  2. トップページ/Python講習/関数を使ってみよう
  3. トップページ/Python講習/保存フォルダを自動で作成しよう
もっと見る
最近更新されたページ
  • 136日前

    トップページ/長谷川の遊び場/本棚
  • 394日前

    トップページ/長谷川の遊び場/長谷川冒険記
  • 453日前

    トップページ/長谷川の遊び場/Twitter拾い物
  • 936日前

    トップページ/体裁全般/文章表現
  • 1001日前

    トップページ/Office Tips
  • 1145日前

    トップページ/Python講習
  • 1281日前

    トップページ/仕事Tips/国家公務員のためのマネジメントテキスト
  • 1317日前

    トップページ/仕事Tips
  • 1342日前

    メニュー
  • 1342日前

    トップページ/長谷川の遊び場
もっと見る
人気記事ランキング
  1. トップページ/Python講習/Pythonを使ってみよう
  2. トップページ/Python講習/関数を使ってみよう
  3. トップページ/Python講習/保存フォルダを自動で作成しよう
もっと見る
最近更新されたページ
  • 136日前

    トップページ/長谷川の遊び場/本棚
  • 394日前

    トップページ/長谷川の遊び場/長谷川冒険記
  • 453日前

    トップページ/長谷川の遊び場/Twitter拾い物
  • 936日前

    トップページ/体裁全般/文章表現
  • 1001日前

    トップページ/Office Tips
  • 1145日前

    トップページ/Python講習
  • 1281日前

    トップページ/仕事Tips/国家公務員のためのマネジメントテキスト
  • 1317日前

    トップページ/仕事Tips
  • 1342日前

    メニュー
  • 1342日前

    トップページ/長谷川の遊び場
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  2. MadTown GTA (Beta) まとめウィキ
  3. R.E.P.O. 日本語解説Wiki
  4. シュガードール情報まとめウィキ
  5. ソードランページ @ 非公式wiki
  6. ヒカマーWiki
  7. AviUtl2のWiki
  8. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  9. Dark War Survival攻略
  10. 2025.3.15 小田急線運用表
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  5. 初音ミク Wiki
  6. 検索してはいけない言葉 @ ウィキ
  7. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  8. 発車メロディーwiki
  9. 英傑大戦wiki
  10. モンスター烈伝オレカバトル2@wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  3. べりはぴ - ストグラ まとめ @ウィキ
  4. おくら - クッキー☆解説Wiki
  5. 機体一覧 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  6. 鬼レンチャン(レベル順) - 鬼レンチャンWiki
  7. 危険度7 - 検索してはいけない言葉 @ ウィキ
  8. 868 - ストグラ まとめ @ウィキ
  9. ガンダム・エアリアル(改修型) - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  10. ミッション攻略 - 地球防衛軍6 @ ウィキ
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.