【Python自動化】openpyxlで読み込んだデータを視覚化する方法

Python・GAS
ワタシ

今回は社内でのエクセル業務の自動化について理解を深めます。

Pythonを使うと、Excel仕事を効率化・自動化することが可能です。

では具体的にどうやるのか?Pythonかじりはじめたばかりでもできるのか?実務で使えるのか?

この点を明らかにするべく、営業上がり・非エンジニアの私でも出来るレベルの効率化ワザをまとめます(‘◇’)ゞ

合わせて確認したい記事

Pythonを時短で基礎から応用まで一気に学びたい時はこちらもオススメ!
>>【Python】TechAcademyを実際に使ってみて学べたこと

今回の論点整理

今回のアウトプット

今回は表をグラフ化する箇所をプログラムします。

イメージは以下の通り。

グラフ化を施すことで視覚的に訴えられるので、資料の質がガラリと変わります。

今回もコードは簡単でライブラリも準備されているので一度用意してしまえば量産可能です。

尚、今回も参考にしているのは以下の書籍で、実践に活用しようと思います。ポイントを絞ってかなり詳しく記載しておりオススメです。

ツマ

参考書があると目的に対して勉強の流れが明確になるね。

今回の位置づけ

現業におけるデータ分析・エクセル業務を考えると、ザックリ以下の6ステップを踏んでいます。

そのため、今回もこの6ステップの流れを踏まえて、どこを効率化・自動化するかを絞って進めます。

そもそも現業の何の自動化をめざすのか?という点については下記に記載しています。

【Python自動化】openpyxlを使って 社内のExcel作業を自動化する

その上で、今回はデータは何らかの形で抽出されている前提で、そのデータをいじる工程であるSTEP4を対象にします。

上記を実現する手順について下記に備忘録的にまとめたいと思います。

今回のポイントは以下の3点になります。

抑えドコ!
  • グラフ化を行う
  • キャプションをいれる
  • グラフタブを創る

順に触れていきます。

Excel業務の自動化に向けたポイント

グラフ化を行う

まずは該当エクセルを開きフォントの変更からします。

下記のコードで、フォントが変更になったことが分かると思います。

#ライブラリ読み込み
import openpyxl
from openpyxl.chart import BarChart, Reference,Series

#データ読み込み
workBook = openpyxl.load_workbook("対象ファイル.xlsx") 
sheet = workBook.active#アクティブなワークシートを選択

#描画対象になるセル範囲を設定
values = Reference(sheet, min_col=2, min_row=1,max_col=4, max_row=32)

#使うグラフの種類を設定
chart = BarChart() 

#先頭行をグラフのラベル化
chart.add_data(values,titles_from_data=True) 

#セルH2に描画
sheet.add_chart(chart, "H2") 
workBook.save("グラフ化ファイル.xlsx") 

ちなみに、chart=BarChartと出ている部分を変えれば色々なグラフを作れます

下記のオフィシャルサイトを見るとどんなグラフ化できるかと設定方法が全て出ているので確認頂くのが良いと思います。

■ご参考リンク(外部リンクに飛びます)

これで、棒グラフの他、円グラフ、折れ線グラフ、エリアグラフ、バブルチャート、レーダーチャート等、各種グラフ化は可能です。

ワタシ

基本的にはこれで問題はない気がします。

キャプションをいれる

下記のようにキャプションをいれると資料としての体が整います

ちなみにこれは上記のコードの5つ目のブロックを下記に置き換えるだけで出来ます。

#先頭行をグラフのラベルにしてキャプション追加(5ブロック目)
chart.title = "支社別売上データ" 
chart.x_axis.title = '日付' 
chart.add_data(values,titles_from_data=True)

これでグラフタイトルが入り、資料としてそれっぽく共有が出来る体になりました。

ツマ

本当に一行追加するくらいだから簡単だね。

グラフタブを創る

そして最後にグラフ化のタブを作ります。

これも上記コードの、2ブロック目と5ブロック目を下記のように変更をするだけで簡単に出来てしまいます。

ちなみに、これはその後の工程でPDFやパワポやWordなどに張り付ける等するときに、この形で保存した方が管理・応用しやすいためです。

#アクティブなシートを選択し更にシート作成 (2ブロック目)
workBook = openpyxl.load_workbook("対象ファイル.xlsx") 
sheet = workBook.active 
chartSheet = workBook.create_chartsheet("グラフタブ")


#先頭行をグラフのラベルにしてデータを追加 (5ブロック目)
chart.add_data(values,titles_from_data=True)
chartSheet.add_chart(chart)

これで無事タブを置き換えてグラフ化することが出来ました。

ワタシ

一度やってしまえばあとは簡単に出来そうですね

まとめ 

上記を活用する際に、理解しておくべきポイントは以下3点でした。

今回の抑えドコ
  • グラフ化を行う
    ▷openpyxlのchart部分を指定してグラフを選ぶ
  • キャプションをいれる
    ▷chart.titleで指定する
  • グラフタブを創る
    ▷chartSheet.add_chartで別タブに追加する

これでグラフ化まで出来ました。前回の表組の整理も合わせて利用すればエクセルの基本は全て網羅できると思います。

そのため、定例的にエクセルで作成する進捗管理や共有資料などがある場合、これで自動化が可能になると思います。

少しずつ自動化できることを考えながら、それを実装する過程で学びながら能力開発を促していきたいものです。

ご精読頂きありがとうございました!
m(_ _)m

その他、Python初心者のお勉強のお供

上記の内容と併せて実務で活かすという視点では下記の参考図書も合わせて確認すると理解が深まります(-_-)

created by Rinker
¥2,138 (2021/09/21 19:35:49時点 Amazon調べ-詳細)

その他、Python初心者が抑えたいポイント集

Python(主にデータ分析・自動化)に関しては下記のポイントを抑えると実務力につながっていきますので合わせてご参照下さい(‘ω’)ノ

ーPythonのインストール、データ読み込み、各種分析を試すー

【Python入門】WindowsとiPad両方でプログラミング環境を整える

【Python入門】エクセルファイルの読み込み方法

【Python入門】エクセルの”ピボットテーブル”をプログラムする

【Python入門】データ分析の”ビジュアル化”で抑えるべきライブラリとは

【Python入門】回帰分析や分類問題が使えるsklearnの使い方

【Python入門】顧客データを読み込みクラスタリング・ペルソナ分析

【Python入門】画像データを元にディープラーニングで自動判別(CNN等)

【Python入門】WEB上のデータを抽出してテキストマイニング(スクレイピング)

【Python入門】Twitterデータでテキストマイニング(APIの利用)

【Python入門】機械に自動でモデル選定させる(AutoML活用)

【Python入門】iPad×Kaggleで手軽な学習環境を創る

【Python入門】iPad×Google Colabalatoryで手軽にtwitter分析

ーPythonを使ってExcelを扱う “openpyxl”の活用ー

【Python初心者】Python×効率化 社内のexcel作業の自動化を試みる①

【Python初心者】Python×効率化 社内のexcel作業の自動化を試みる②

【Python初心者】Python×効率化 社内のexcel作業の自動化を試みる③

【Python初心者】Python×効率化 社内のexcel作業の自動化を試みる④

【Python初心者】Python×効率化 社内のexcel作業の自動化を試みる⑤

合わせて確認したい記事

Pythonを時短で基礎から応用まで一気に学びたい時はこちらもオススメ!
>>【Python】TechAcademyを実際に使ってみて学べたこと