広告 iPhone、PC 関連

macOSのショートカットアプリを利用したPythonによるCSVファイルのグラフ化を試みました。

スポンサーリンク

 

 

今まで当ブログでは、macOSのnumbersを使って様々なオーディオ関連のグラフ(例えばスペクトルなど)を添付して来ましたが、Python を使えばグラフ描画機能が充実しており、CSVファイル(データ)があれば、簡単にグラフ作成が可能であることが分かりました。 そこで、Pythonの勉強を兼ねてGUI (グラフィカルユーザーインターフェース)ベースで「入力処理」を含め「CSVからグラフ化」する一連のPythonプログラムに挑戦することにしました。

Pythonの挑戦過程を下の4部構成に分けて紹介して行きたいと思います。

先ず、完成した入力画面とCSVからグラフ化した描画例をご覧ください。

入力設定画面


入力操作:
CSVファイルを選択し、x軸、y軸に対するCSVの列番号を記入して,【入力終了】ボタンを押せばグラフが表示されます。 グラフ線の太さや色指定も変更できます。

グラフ化画面

グラフ下の十字ボタンを押して、トラックパッド操作でインターラクティブにグラフの拡大・縮小が可能です。 詳しくは「Pythonのグラフウィンドウ操作」を参照ください。

 

オペレータ
オペレータ

ここから、【 準 備 編 】の説明に移ります。

 

準 備 編

Pythonの開発環境(開発ツール)について

Pythonの開発ツール(IDE)は無償から有償まで開発ツールは多数ありますが、今回はPythonに触れてみることが目的なので取敢えずscriptの編集と実行が出来るmacOSに付属するショートカットアプリの「シェルスクリプトを実行」を利用することにしました。 また、ショートカットアプリを使うメリットは、完成したPythonを簡単に単独実行できるapp化が作成できる点です。 欠点は、Python特有のインデントエラーやシンタックスエラーに対応できません。 その点はChatGPTで校正を任せることにしました。

今回の開発環境をマトメると以下になります。

  1. macOSのショートカットアプリの利用:
    下に示す「シェルスクリプトを実行」のシェルをpython3に設定し、テキストエディタにPython コードを記述して、実行ボタンを押せば、直ぐに実行確認ができます。 ただし、他の開発ツールと違い、シンタックスエラーやインデントエラーなどに対して弱点がありますので、この弱点は ChatGPT の力を借りて補うことにしました。
  2. ChatGPTの活用:
    pythonはインデントに対して厳格で、往々にしてエラーが発生するので、ChatGPTを活用(質問)して仕様に対するscriptのアドバイスや、インデントの校正、プログラミングのミス・バグ修正などのサポートをしてもらいます。
  3. パソコン環境等:
    M1-macbook air macOS:14.1(Sonoma)
    python3のバージョン:Python 3.9.6 (/usr/bin/python3)
    pip3のバージョン:pip 21.2.4 (/usr/bin/pip3)
注意:
M1-macbookにデフォルトでインストールされているpython3及びpip3を使用しています。
(Homebrewなどでpythonをインストールしたものではありません) これは、下で示す「シェルスクリプトを実行」でpython3を選択するとシステムサイドの/usr/bin/python3が指定されるためです。

「シェルスクリプトを実行」の操作

blank

ショートカットアプリを起動して、ファイル > 新規ショートカット を選択し、「シェルスクリプトを実行」をアクションエリアにドラックするすると、下の画面が表示されます。 

「シェルスクリプトを実行」画面で、下の「シェル」選択でpython3(/usr/bin/python3)を選びます。 

テキストエディタ内にpython script コードを記述して 右上の [ ▶ ]ボタンを押すことでプログラムが直ぐに実行されます。

プログラム実行で致命的エラーが発生すると、ショートカットアプリのコントロールが効かなくなる場合があります。 この時は「option」「command」「esc」の 3 つのキーを同時に押してショートカットアプリの強制終了が必要となる場合があります。

 

Pythonライブラリをインストール

今回使用するPythonのライブラリは、以下になります。 事前にインストールしておきます。

  • flet:入力設定画面用のフレームワーク 
    TkinterでもOKですが、今回は今後のWeb対応も考慮してfletにしました。
  • pandas:CSV読み込み用のライブラリ
  • matplotlib:グラフ描画用のライブラリ

3つのライブラリをインストールするには、ターミナルを開いて、以下のコードでインストールします。

 zsh or bash
↓ 3つのライブラリを一括インストール
pip3 install flet matplotlib pandas
↓ インストール済ライブラリを確認するには
pip3 list

 

オペレータ
オペレータ

ここから、PythonのFletライブラリを利用した【入力画面ウィンドウ作成編 】の説明に移ります。

 

入力画面ウィンドウ作成編

入力画面ウインドウと各部の説明(入力仕様)

「シェルスクリプトを実行」画面で、テキストエディタ内にpython script コードを記述して 右上の [ ▶ ]ボタンを押すことでプログラムが実行され下の入力画面ウィンドウが開きます。

入力画面ウィンドウ

blank

入力操作仕様
  1. 【CSVファイルを選択】ボタンを押すと、Finderが開きCSVファイルを選択します。(CSVのみ選択可能です) 選択されたファイル名がフルパスでボタンの下部に表示されます。
  2. 四角で囲まれたオプションボックス(TextField)内に必要な内容をセットします。
  3. 最後に、【入力終了】ボタンを押すと、入力画面が消えてグラフウィンドウが立ち上がります。
  4. オプションに誤入力があった場合、【入力終了】ボタンを押すと入力画面が消え終了します。

PythonのFletライブラリを利用した入力画面ウィンドウ作成

下のコードを、準備編で説明したmacOSのショートカットアプリ「シェルスクリプトを実行」のエディタ部にコピペします。黄色でハイライト行は、後段で説明している部分です。

Python Scriptの簡単な説明

12行目:
def main(page: ft.Page)は、入力画面ウィンドウのレイアウト含め、全体が記述された関数で、119行目のft.app(target=main)で、def main(page: ft.Page)関数を呼び出しFlet を起動します。

16〜23行:
ウィンドウのサイズなどを設定しています。 ウインドウの上部にある最小化、最大化ボタンを無効、ウインドウサイズの変更を無効にしています。 更に、ウィンドウを最前面で表示する様にしています。

59〜96行目:
この部分が、ウィンドウ内の入力部品やボタンなどの配置及びコメントなどが記述されています。

124〜129行目:
ウインドウ上部の赤丸ボタンの機能を無効にすることが出来ません。 この代替で、ウインドウ上部の赤丸ボタンが押された時のエラーを回避する処理です。 

その他:
print()コードで「シェルスクリプトを実行」の欄外に下で示す様に、【CSVファイルのグラフ化編】で使用するglobal変数や、終了状態を示すステータスが表示されます。 

 

オペレータ
オペレータ

ここから、Pythonの matplotlibライブラリを利用した【CSVファイルのグラフ化とアプリ化】の説明に移ります。

 

CSVファイルのグラフ化とアプリ化

次のページへ >

 

スポンサーリンク

 

スポンサーリンク