Menu/Prof
スズキマコト
自由人
元々は楽器屋のギター兄ちゃん。
趣味でプログラミングしてるうちに
本職になってしまった人。

過去に喋っていた言語
c pascal Assembler
perl PHP Python Ruby など
javascriptなどは都度必要に応じて。
最近Mac買ったのでswift勉強してます。

体ぶっ壊して死にかけたので人生RESET中。
おすすめ記事!

chatGPT Code Interpreterのグラフの日本語項目の文字出ない問題

Some visuals are licensed via Canva Pro (includes commercial rights).
Usage complies with Canva’s license terms at the time of use.
License policy: canva.com/policies/content-license-agreement

contents

FONT的に日本語って色々不便よね

chatGPTのCodeInterpreterで基本的な探索的データ分析(EDA: Exploratory Data Analysis)をお願いするとぽんぽんとグラフ化して表示してくれますね?

しかしそのグラフをよーくみるとこんな風になってませんか??

chatGPT Code Interpreterが出力したグラフ例、日本語の部分が化けてる

もはや何のグラフなのかさっぱりわかりませんね笑

グラフで文字が表示されない原因。

chatGPT Code Interpreter の出力されたグラフで文字が表示されない理由

これではデーター解析に全く使えませんね。

理由は実は簡単なのです。chatGPT側に日本語FONTが用意されていないので

日本語FONT部分が全部表示ができなくて四角になってしまうわけですね。

この対処方法をchatGPTに聞いてみた

先ほど棒グラフを表示していただいた時に気になったのですが 文字の一部がFONTが読めていないような四角の枠線になってます。 これはもしかしたら日本語FONTがなくて表示できていないといことですか?

はい、その通りです。その四角の枠線は、日本語のフォントが利用できない場合に表示されるプレースホルダです。一部の環境では、日本語のフォントがデフォルトでインストールされていないため、このような問題が発生することがあります。

この問題を解決するには、matplotlib の設定を変更して、日本語をサポートするフォントを使用するようにする必要があります。しかし、現在の環境ではインターネットに接続していないため、新しいフォントをダウンロードすることはできません。

代替の解決策として、日本語の文字列を表示する代わりに、対応する英語の文字列を表示することができます。具体的には、データフレームの列名や値を英語に翻訳することができます。ただし、これは手動で行う必要があり、すべての日本語の文字列を完全にカバーすることはできません。

この問題に対する最善の解決策は、日本語をサポートするフォントを含む環境で作業を行うことです。

FONTをアップロードすれば一時的に対処できると理解しましたがあってますか?

はい、その通りです。日本語をサポートするフォント(.ttf ファイルなど)をアップロードして、それを matplotlib で使用することで、日本語のテキストを正しく表示することができます。

具体的な手順は以下の通りです:

  1. 日本語をサポートするフォントファイル(.ttf など)をアップロードします。
  2. matplotlib のフォント設定を更新して、アップロードしたフォントファイルを使用するようにします。
  3. matplotlib のキャッシュをクリアします。
  4. 再度グラフを描画します。

ただし、この手順はセッションごとに適用され、セッションが終了すると設定はリセットされます。また、アップロードしたフォントファイルは、プライバシーとセキュリティの観点から、セッション終了時に削除されます。

それでは、日本語をサポートするフォントファイルをアップロードしてください。

では手持ちの NotoSans_regular.otfを使ってみる

chatGPT Code Interpreter で FONTをアップロードする

Matplotlibにフォント設定をしてやるために・・・

アップロードしてみた図

chatGPT Code Interpreter グラフで文字化け

あれ?まだダメやん。このFONTブログ用にサブセット化した奴だからダメなのかも。

さらにchatGPTに聞いてみる

この足りない部分に適切なFONTは何でしょうか まだほとんど表示されていませんね

日本語を完全にカバーするためには、一般的には “Noto Sans CJK JP” や “Takao” などのフォントが推奨されます。これらのフォントは、ひらがな、カタカナ、漢字(JIS第1水準、第2水準、追加漢字など)を網羅しています。

ただし、これらのフォントも全ての文字をカバーしているわけではなく、一部の非常にまれな文字や新しく追加された文字はカバーされていない場合があります。

もし特定の文字が正しく表示されない場合は、その文字が含まれているフォントを探す必要があります。具体的な文字が分かる場合は、その文字がサポートされているフォントを探すことができます。

また、フォントの選択は一部の問題を解決するかもしれませんが、それ以外の問題(例えば、文字化けや文字の欠落)がある場合は、それらはデータの問題やエンコーディングの問題である可能性があります。それらの問題を解決するには、データを作成または取得したソースに問い合わせるか、データの前処理を行うことが必要です。

なるほど Noto Sans CJK JPか。

Noto Sans CJK JPを探す旅に出る。

Noto Sans CJK JPを探す旅 Githubにあるらしい

Google FONTには置いてなかった笑

仕方ないのでググりながら徘徊すると Githubに置いてあるらしい!

https://github.com/notofonts/noto-cjk/tree/main/Sans/OTF/Japanese

NotoSansCJKjp-Regular.otf
が置いてある Githubの画面

ここから適当な奴選んでダウンロードしましょう。

私は NotoSansCJKjp-Regular.otf こいつにしました。

画面の下部にある view raw をクリックすればローカルにダウンロードできます。

FONTを NotoSansCJKjp-Regular.otf にして再度挑戦!

さぁどうかな?

chatGPT Code Interpreter 日本語文字が表示された!

おー 無事に表示されたぞ よかったよかったw

じぴ子

新たにアップロードされた”NotoSansCJKjp-Regular.otf”フォントを使用してグラフを再描画しました。今回は日本語のテキストが正しく表示されています。
ただし、ご理解の通り、これは一時的な解決策であり、セッションが終了すると設定はリセットされます。この設定を永続的に適用するには、使用している環境に日本語フォントをインストールするか、matplotlibのデフォルト設定を変更する必要があります。

管理人

まぁあちらの環境に日本語FONTはこちらからはインスコできないのでこちらから一時的にFONTを渡すしかないんだけどね笑

あとがき

chatGPT Code Interpreterでグラフを出すときは
NotoSansCJKjp-Regular.otf を一緒にアップロードしよう

この日本語FONTはあくまで一時的な物としての扱いになります。

そのセッションの中だけ有効なので new chat で新しいセッションを開始すると

もうアップロードしたFONTは関係ないので新しいセッションでは使えません。

でも出力されたグラフを真面目に解析するなら項目名が読めないのは致命的ですので

英語モードでサチコを操るネィティブさん以外は毎回FONTをアップロードしてから

グラフ化を実行すると幸せになれますねw

シェアしてくれると喜びます
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

makotoのアバター makoto Blogger&YouTuber

サーバー管理者として17年ほど仕事でサーバー触ってました。
www,mail,dns,sql各鯖をすべてFreeBSDで運用してましたが現世ではかなりレアなタイプになるみたいですね笑

viやシェルスクリプトとかperlとかgccとかFreeBSDとか実はbashよりtcshが好きとか時々寝ぼけるのは
その名残でしょう。

今まで縁の下の力持ち的な他人のためにプログラムを書き他人のためにサーバー構築し他人のためにWEBサイトを創る的な世界から
自分の好きなことに集中できる環境は実に気持ち良いですね。
現役は引退済みなので難しいことはやりませんしやれません。

現在 ほぼ自由人。

contents